1. Binary Tree Inorder Traversal My Submissions QuestionEditorial Solution

    Total Accepted: 123484 Total Submissions: 310732 Difficulty: Medium

    Given a binary tree, return the inorder traversal of its nodes’ values.

For example:

Given binary tree {1,#,2,3},

1

\

2

/

3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

思路:1.递归

2.迭代

class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> v;
if(root==NULL)return v;
vector<int> vl,vr;
vl = inorderTraversal(root->left);
v.push_back(root->val);
vr = inorderTraversal(root->right);
int n = vl.size()+v.size()+vr.size();
vector<int> res(n);
copy(vl.begin(),vl.end(),res.begin());
copy(v.begin(),v.end(),res.begin()+vl.size());
copy(vr.begin(),vr.end(),res.begin()+vl.size()+v.size());
return res;
}
};

以下是迭代方法,多练习以写出一个精简的迭代代码

思路找到左线压入栈,自底向上访问,有右子树的节点跳至右子树重复

上述过程。

class Solution {
public:
vector<int> inorderTraversal(TreeNode* root) {
vector<int> v;
stack<TreeNode*> st;
while(root||!st.empty()){//第一个处理root情况
while(root!=NULL){ //一直找到最左下角,没有的话后面弹出该元素值
st.push(root);
root = root->left;
}
root = st.top();
st.pop();
v.push_back(root->val);//弹出值,转至右子树
root = root->right;
}
return v;
}
};

最新文章

  1. Java中static的理解
  2. JQuery知识点链接
  3. JavaScript笔试必备语句
  4. 主机访问虚拟机中linux上的web服务
  5. Java 并发同步器之CountDownLatch、CyclicBarrier
  6. 新闻类App使用的组件
  7. USB HID usage table
  8. SDUT 1570 C 旅行(DFS)
  9. SPL的基本使用
  10. 转-——推荐几个web中常用的一些js图表插件 - zccst
  11. Pi
  12. 一个基于DpperHelper的t4模板
  13. dedecms内容页调用图片集文档的图集图片
  14. Rich feature hierarchies for accurate object detection and semantic segmentation(理解)
  15. Linux脚本shell字符串处理
  16. 记一次IDEA编译器调优
  17. 判断素数(翁凯男神MOOC)
  18. java collection和Iterator
  19. Windows下同一台机器上elasticsearch集群的配置以及elasticsearch-head插件的使用
  20. ES6新特性4:字符串的扩展

热门文章

  1. 【二食堂】Alpha- 发布声明
  2. 简明教程 | Docker篇 &#183; 其一:基础入门
  3. Noip模拟5 2021.6.7
  4. [火星补锅] 非确定性有穷状态决策自动机练习题Vol.1 T3 第K大区间 题解
  5. 零基础学习Linux心得总结
  6. 平衡二叉树检查 牛客网 程序员面试金典 C++ Python
  7. CSS学习笔记:浮动属性
  8. pl/sql 远程连接oracle数据库问题(TNS:丢失连接)
  9. Go语言实现APPID登录
  10. LeetCode-40. 组合总和 II C++(回溯法)