博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣题解-589. N叉树的前序遍历(递归和迭代)
阅读量:4299 次
发布时间:2019-05-27

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

题目:589. N叉树的前序遍历

给定一个 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;    vector
children; 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; } stack
stk; 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; }};
你可能感兴趣的文章
GTest基础学习-04-第3个单元测试-测试夹具test fixture
查看>>
GTest基础学习-05-第5个单元测试-父test fixture和子test fixture的使用
查看>>
GTest基础学习-06-第6个单元测试-接口测试(类型参数驱动)
查看>>
从零开始到设计Python+Selenium自动化测试框架-如何开始
查看>>
Python+Selenium基础篇之2-打开和关闭火狐浏览器
查看>>
Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器
查看>>
Python+Selenium基础篇之4-XPath的使用
查看>>
Python+Selenium基础篇之5-第一个完整的自动化测试脚本
查看>>
Python+Selenium练习篇之8-利用css定位元素
查看>>
Python+Selenium练习篇之19-断言页面标题
查看>>
Python+Selenium练习篇之20-获取元素上面的文字
查看>>
Python+Selenium练习篇之21-验证控件是否被选中
查看>>
Python+Selenium练习篇之22-获取页面元素大小
查看>>
Python+Selenium练习篇之23-组合键-全选文字
查看>>
Python+Selenium练习篇之24-组合键-退格键删除文字
查看>>
Python+Selenium练习篇之25-鼠标右键
查看>>
Python+Selenium练习篇之26-执行JavaScript
查看>>
Jenkins高级篇之Pipeline实践篇-5-Selenium和Jenkins持续集成-Pipelinejob草稿版
查看>>
Jenkins高级篇之Pipeline实践篇-6-Selenium和Jenkins持续集成-pipeline参数化构建selenium自动化测试
查看>>
Jenkins高级篇之Pipeline实践篇-7-Selenium和Jenkins持续集成-publish html report插件的pipeline使用介绍
查看>>