非递归中序遍历:

思路:注释

    vector<int> inorderTraversal(TreeNode* root) {
vector<int>ret;
if(root == NULL) return ret;
stack<TreeNode*>sta;
TreeNode *p = root;
while(!sta.empty() || p != NULL){
// 当前节点不空 就一直左扎进
while(p != NULL){
sta.push(p);
p = p -> left;
}
// 无左孩子 处理根节点 然后右孩子如果右空电话,p = NULL 下一次直接处理其父结点
if(!sta.empty()){
p = sta.top();
sta.pop();
cout<<p->val<<endl;
ret.push_back(p->val);
p = p -> right;
} }
return ret;
}

非递归前序遍历:

vector<int> preorderTraversal(TreeNode* root) {
vector<int>ret;
if(!root) return ret;
stack<TreeNode *>s;
TreeNode *p = root;
while(p != NULL || !s.empty()){
while(p){
cout<< p->val <<endl;
ret.push_back(p->val);
s.push(p);
p = p -> left;
}
if(!s.empty()){
p = s.top();
s.pop();
p = p -> right;
}
}
return ret;
}

【LeetCode】树的遍历的更多相关文章

  1. LeetCode总结 -- 树的遍历篇

    遍历树的数据结构中最常见的操作. 能够说大部分关于树的题目都是环绕遍历进行变体来解决的. 一般来说面试中遇到树的题目是用递归来解决的, 只是假设直接考察遍历. 那么一般递归的解法就过于简单了. 面试官 ...

  2. leetcode: 树

    1. sum-root-to-leaf-numbers Given a binary tree containing digits from0-9only, each root-to-leaf pat ...

  3. L2-006 树的遍历 (层序遍历)

    根据访问根节点与左右子树的先后顺序,二叉树一般有三种遍历方式:先序遍历.中序遍历和后序遍历. 只要给定中序遍历序列与先序或后序中的一种,可以还原二叉树结构.学习数据结构课程时,一直都只会手动构建还原二 ...

  4. LeetCode树专题

    LeetCode树专题 98. 验证二叉搜索树 二叉搜索树,每个结点的值都有一个范围 /** * Definition for a binary tree node. * struct TreeNod ...

  5. 数据结构--树(遍历,红黑,B树)

    平时接触树还比较少,写一篇博文来积累一下树的相关知识. 很早之前在数据结构里面学的树的遍历. 前序遍历:根节点->左子树->右子树 中序遍历:左子树->根节点->右子树 后序遍 ...

  6. YTU 3023: 树的遍历

    原文链接:https://www.dreamwings.cn/ytu3023/2617.html 3023: 树的遍历 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 2 题 ...

  7. 团体程序设计天梯赛-练习集L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  8. leetcode404-----简单的树的遍历

    Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...

  9. pat L2-006. 树的遍历

    L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历 ...

  10. L2-006. 树的遍历

    题目链接:L2-006. 树的遍历 今天一神给我手敲二叉树模板,瞬间就领悟了,感觉自己萌萌哒! 看上去很直观! #include <iostream> #include <cstdi ...

随机推荐

  1. Office Adobe Acrobat把PDF转换为Word时候提示不支持的Type2字体怎么办

    如下图所示,在使用Adobe Acrobat Pro9将PDF转换为Word的时候出现下面的错误   很简单,不要用Adobe Acrobat Pro9了,用Adobe Acrobat Pro X,还 ...

  2. 系统重装 Ghost系统的disk to image等等是什么意思

    localdiskto disk to imade from imagepartitionto partition to image from imagecheckimage file disk这些是 ...

  3. Python常用的几种常用的内置函数

    abs(x)              用于返回绝对值 divmod(x,y)       函数中传入两个数字,返回的是x/y的一个结果的元组(商,余数) pow(x,y)            用于 ...

  4. 1.5.4 HAVING子句

    1.5.4 HAVING子句正在更新内容.请稍后

  5. linux中用anaconda使用不同版本python

    1.使用命令conda create --name python36 python=3.6  #你想使用哪个版本就下载哪个版本,--name后面跟的是该虚拟环境的名称 2.需要使用python3.6时 ...

  6. 欧莱雅浅谈OC中方法调用的顺序中的Category

    OC特有的分类Category,依赖于类.它可以在不改变原来的类内容的基础上,为类增加一些方法.分类的使用注意: (1)分类只能增加方法,不能增加成员变量: (2)在分类方法的实现中可以访问原来类中的 ...

  7. [m() for i in range(8)]

    import time def m(): print(time.time()) time.sleep(1) [m() for i in range(8)] 一行 list

  8. Spring Security调研记录【七】--核心模型与实现

    网上有非常多关于Spring Security文章中,都觉得Spring Security(相对于shiro)过于复杂,个人觉得复杂的是Spring Security的官方文档而不是Spring Se ...

  9. bootstrap3.0学习笔记记录1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. I.MX6Q MfgTool2 ucl2.xml eMMC

    /**************************************************************************** * I.MX6Q MfgTool2 ucl2 ...