[LeetCode 94]Binary Tree Inorder Traversal(迭代法)
来源:互联网 发布:js 打开新url 编辑:程序博客网 时间:2024/06/05 00:29
题目内容
94.Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes’ values.
For example:
Given binary tree [1,null,2,3],
1
\
2
/
3
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
题目来源
题目简述
二叉树中序遍历的迭代方法
题目分析
用栈记录访问节点的顺序。
首先,将根节点入栈。
其次,对栈中的每个节点,若:
1.左子树非空
将左子节点入栈。
2.左子树为空
访问该节点,然后将该节点出栈,同时检查右子树,
此时分为以下两种情况:
1.右子树非空
右子节点入栈。
2.右子树为空
对栈顶节点完成上述操作,直到栈为空。
代码示例
#include <stack>/** * 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) { stack<TreeNode *> trace; TreeNode * p=root; vector<int> res; if(root==NULL) return res; do { while(p!=NULL) { trace.push(p); p=p->left; } if(!trace.empty()) { p=trace.top(); trace.pop(); res.push_back(p->val); p=p->right; } } while(p!=NULL||!trace.empty()); return res; }};
0 0
- [LeetCode 94]Binary Tree Inorder Traversal(迭代法)
- [leetcode 94] Binary Tree Inorder Traversal
- Leetcode NO.94 Binary Tree Inorder Traversal
- leetcode-94 Binary Tree Inorder Traversal
- leetcode || 94、Binary Tree Inorder Traversal
- Binary Tree Inorder Traversal - LeetCode 94
- Leetcode[94]-Binary Tree Inorder Traversal
- leetcode(94):Binary Tree Inorder Traversal
- leetcode-94-Binary Tree Inorder Traversal
- Leetcode 94 Binary Tree Inorder Traversal
- leetcode[94]:Binary Tree Inorder Traversal
- LeetCode(94) Binary Tree Inorder Traversal
- Leetcode # 94 Binary Tree Inorder Traversal
- leetcode 94: Binary Tree Inorder Traversal
- [leetcode-94]Binary Tree Inorder Traversal(c++)
- leetcode-94:Binary Tree Inorder Traversal (Java)
- 【LeetCode】(94)Binary Tree Inorder Traversal(Easy)
- leetcode: (94) Binary Tree Inorder Traversal
- 使用AsyncTask
- 快捷键
- 作业——素数的判断
- fedora下C++程序错误总结
- 初窥mysql
- [LeetCode 94]Binary Tree Inorder Traversal(迭代法)
- 【Codeforces Round 375 (Div 2) F】【构造 贪心】st-Spanning Tree 树的特殊最小生成树使得S度不超SD,T度不超TD
- view的各种知识
- UVA 10375 Choose and divide (唯一分解定理)
- - (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval
- Parentheses(弱校联盟十一专场)字典序
- 分块练习 A
- Swift 扩展(Extension)总结
- px 与 dp, sp换算公式?