题目描述思路
递归
Java实现Python实现
题目描述
N叉树的前序遍历
思路 递归
每次递归时,先访问根结点,然后依次按照前序遍历的顺序递归访问每个孩子结点即可。
Java实现
class Solution {
public List preorder(Node root) {
List res = new ArrayList<>();
dfs(root, res);
return res;
}
public void dfs(Node root, List res) {
if (root == null) {
return;
}
res.add(root.val);
for (Node next : root.children) {
dfs(next, res);
}
}
}
Python实现
"""
# 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]:
ans = []
def dfs(node):
if node is None:
return
ans.append(node.val)
for next_node in node.children:
dfs(next_node)
dfs(root)
return ans



