[LeetCode]94 二叉树中序遍历
来源:互联网 发布:淘宝咸鱼卖东西安全吗 编辑:程序博客网 时间:2024/05/19 19:33
Binary Tree Inorder Traversal(二叉树中序遍历)
【难度:Medium】
Given a binary tree, return the inorder traversal of its nodes’ values.
For example:
Given binary tree {1,#,2,3},
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
使用迭代而不是递归的方法来中序遍历二叉树。
解题思路
整体思路与LeetCode 144题迭代方法先序遍历二叉树类似,中间细节稍微调整即可。
http://blog.csdn.net/qq_14821023/article/details/50809788
c++代码如下:
//迭代方法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> v; stack<TreeNode*> s; TreeNode* cur = root; while (cur || !s.empty()) { if (cur) { //当前节点压栈 s.push(cur); //先走左边 cur = cur->left; } else { cur = s.top()->right; //左边走完后记录根节点的值 v.push_back(s.top()->val); s.pop(); } } return v; }};
//递归方法/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> v; if (!root) return v; vector<int> tmp = inorderTraversal(root->left); if (!tmp.empty()) { for (int i = 0; i < tmp.size(); i++) { v.push_back(tmp[i]); } } v.push_back(root->val); vector<int> tmp2 = inorderTraversal(root->right); if (!tmp2.empty()) { for (int i = 0; i < tmp2.size(); i++) { v.push_back(tmp2[i]); } } return v; }};
0 0
- [LeetCode]94 二叉树中序遍历
- [leetcode]二叉树中序遍历
- LeetCode 94 Binary Tree Inorder Traversal(二叉树中序遍历)
- [leetcode]二叉树先序遍历
- leetcode二叉树遍历
- [leetcode]二叉树遍历
- 二叉树遍历LeetCode#144 #94 #145 (前中后序遍历)
- [LeetCode]144 二叉树先序遍历
- [LeetCode]145 二叉树后序遍历
- LeetCode之二叉树中序迭代遍历
- Leetcode 94:Binary Tree Inorder Traversal (二叉树中序遍历,非递归)
- 【LeetCode】Binary Tree Inorder Traversal ---二叉树中序遍历
- Binary Tree Inorder Traversal 二叉树中序遍历@LeetCode
- Leetcode: Binary Tree Inorder Traversal(二叉树中序遍历)
- Leetcode Binary Tree Inorder Traversal 二叉树中序遍历
- leetcode 二叉树中序遍历的递归和非递归实现
- [leetcode-二叉树中序遍历]--94. Binary Tree Inorder Traversal
- leetcode 94. Binary Tree Inorder Traversal 二叉树中序递归遍历
- 前端素材解析—利用linear制作复杂的边框效果
- eclipse安装svn插件
- [Java]读取文件方法大全
- 获取XIB和Storyboard生成的控件
- IOS 之copy(浅拷贝)和mutableCopy(深拷贝) 以及strong 和weak理解
- [LeetCode]94 二叉树中序遍历
- 迁移到自己的博客上写总结
- 理解startservice和bindservice
- 不严谨,我不是一个合格的程序员
- 关于 Java 数组的 12 个最佳方法
- App Widget的使用
- Windows系统下通过xmanager远程桌面控制Linux
- 开始写博客
- Linux多线程与进程之间通信 实例2