Saturday, September 15, 2018

[LeetCode]Encode N-ary Tree to Binary Tree


把多叉树转化成二叉树存起来,问题在于那么多的子节点如何用两个子节点存起来。既然我们没有宽度,我们拓展深度即可,对于当前节点,我们用二叉树的左子树存encode之后的多叉树的所有子树,右子树来存其所有sibling的节点。如下图所示:

图一

图二



图一encode之后就是图二的样子。我们按照这样的思路即可,encode和decode用递归来实现。时间复杂度O(N),代码如下:


No comments:

Post a Comment