二叉树是一棵以根节点开始,每个节点含有不超过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 |