LeetCode N-ray Tree [n叉树]

二叉树是一棵以根节点开始,每个节点含有不超过2个子节点的树。 让我们将这个定义扩展到N叉树。 一棵以根节点开始,每个节点不超过N个子节点的树,称为N叉树

前缀树,又称字典树( Trie), 就是一个常用的 N 叉树。

遍历

LeetCode
589.N-ary Tree Preorder Traversal Easy
590.N-ary Tree Postorder Traversal Easy
429.N-ary Tree Level Order Traversal N叉树的层序遍历 Medium

递归

1."自顶向下"的解决方案

"自顶向下"意味着在每个递归层次上,我们首先访问节点以获得一些值,然后在调用递归函数时,将这些值传给其子节点

1. 对于 null 节点返回一个特定值
2. 如果有需要,对当前答案 answer 进行更新                         // answer <-- params
3. for each child node root.children[k]:
4.      ans[k] = top_down(root.children[k], new_params[k])  // new_params <-- root.val, params
5. 如果有需要,返回答案 answer                                 // answer <-- all ans[k]

2."自底向上"的解决方案

“自底向上” 意味着在每个递归层次上,我们首先为每个子节点递归地调用函数,然后根据返回值和根节点本身的值给出相应结果。

1.对于 null 节点返回一个特定值
2.for each child node root.children[k]:
3.    ans[k] = bottom_up(root.children[k]) // 为每个子节点递归地调用函数
4. 返回答案 answer                          // answer <- root.val, all ans[k]
559.Maximum Depth of N-ary Tree Easy

小结

发布了166 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/HdUIprince/article/details/105666847