和二叉树不同,二叉树只有左右孩子。所以直接两行递归就可以了。
而N叉树有一堆孩子,在递归的时候,应该直接遍历当前节点的所有孩子节点,再挨个去递归即可。
完整代码
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution:
def preorder(self, root: 'Node') -> List[int]:
res = []
def dfs(root):
if not root :
return
res.append(root.val) # 前序先读取当前节点值再遍历孩子。。后续则先遍历孩子,再加入节点值。
for i in root.children:
dfs(i)
dfs(root)
return res