题目:
Given an n-ary tree, return the preorder traversal of its nodes’ values.
解释:
N叉树的前序遍历。
python代码:
"""
# Definition for a Node.
class Node(object):
def __init__(self, val, children):
self.val = val
self.children = children
"""
class Solution(object):
def preorder(self, root):
"""
:type root: Node
:rtype: List[int]
"""
self.result=[]
def dfs(root):
if not root:
return
self.result.append(root.val)
for i in range(len(root.children)):
dfs(root.children[i])
dfs(root)
return self.result
c++代码:
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> preorder(Node* root) {
vector<int>result;
pre(root,result);
return result;
}
void pre(Node*root,vector<int>&result)
{
if(root)
{
result.push_back(root->val);
for(int i=0;i<root->children.size();i++)
{
pre(root->children[i],result);
}
}
}
};
总结:
和二叉树的前序遍历差不多,只是需要用for循环写出来。