本文共 1381 字,大约阅读时间需要 4 分钟。
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树 :
返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单,你可以使用迭代法完成此题吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/*// Definition for a Node.class Node {public: int val; vectorchildren; Node() {} Node(int _val) { val = _val; } Node(int _val, vector _children) { val = _val; children = _children; }};*/class Solution { vector ans;public: vector preorder(Node* root) { if (!root) { return ans; } ans.push_back(root->val); for (auto &node: root->children) { preorder(node); } return ans; }};
class Solution { public: vector preorder(Node* root) { vector ans; if (!root) { return ans; } stackstk; stk.push(root); while (!stk.empty()) { Node* node = stk.top(); stk.pop(); ans.push_back(node->val); vector ::reverse_iterator iter = (node->children).rbegin(); while(iter != (node->children).rend()) { stk.push(*iter); iter++; } } return ans; }};