博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 589. N叉树的前序遍历
阅读量:4593 次
发布时间:2019-06-09

本文共 1508 字,大约阅读时间需要 5 分钟。

给定一个 N 叉树,返回其节点值的前序遍历。

例如,给定一个 3叉树 :

 

 

 

 

 

返回其前序遍历: [1,3,5,6,2,4]。

 

说明: 递归法很简单,你可以使用迭代法完成此题吗?

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal

递归:

1 void process(Node* root,vector
&ans) { 2 ans.push_back(root->val); 3 int n = root->children.size(); 4 5 for(int i = 0; i < n; i++) 6 { 7 process(root->children[i],ans); 8 } 9 }10 vector
preorder(Node* root) {11 vector
ans;12 if(root)13 process(root,ans);14 return ans;15 }

迭代:

1 /* 2 // Definition for a Node. 3 class Node { 4 public: 5     int val; 6     vector
children; 7 8 Node() {} 9 10 Node(int _val, vector
_children) {11 val = _val;12 children = _children;13 }14 };15 */16 class Solution {17 public:18 vector
preorder(Node* root) {19 vector
ans;20 if(!root) return ans;21 stack
nodeStack;22 nodeStack.push(root);23 while(!nodeStack.empty()) {24 Node* node = nodeStack.top();25 ans.push_back(node->val);26 nodeStack.pop();27 int n = node->children.size();28 for(int i = n-1; i >= 0 ; i--)29 {30 nodeStack.push(node->children[i]);31 }32 }33 return ans;34 }35 };

 

转载于:https://www.cnblogs.com/jj81/p/11486812.html

你可能感兴趣的文章
iTextSharp 合并PDF后,无法删除已经合并的单个文件
查看>>
JS常用类型事件
查看>>
Python:笔记(2)——函数与模块
查看>>
正则表达式
查看>>
raise指令触发异常实例
查看>>
sphinx的安装配置和中文分词包coreseek
查看>>
HashMap Hashtable区别
查看>>
Oracle 11i与12R在功能上有什么区别
查看>>
Hero In Maze(BFS广搜)
查看>>
操作列表
查看>>
iOS开发之Runtime使用
查看>>
导入maven项目时出现 Version of Spring Facet could not be detected. 解决方法
查看>>
nginx https ssl 设置受信任证书[原创]
查看>>
第二个项目:WC
查看>>
PowerMock注解PowerMockIgnore的使用方法
查看>>
MySQL更新时Error Code:1093和Error Code:1175的解决办法
查看>>
最长回文字符串(manacher算法)
查看>>
js 判断是不是手机访问
查看>>
卡特兰数详讲(转)
查看>>
勇气获得机(逆向思维)
查看>>