您的位置:首页 > 其它

LeetCode:Binary Tree Inorder Traversal

2016-05-28 12:34 381 查看


Binary Tree Inorder Traversal

Total Accepted: 126544 Total
Submissions: 316559 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?
confused what
"{1,#,2,3}"
means? >
read more on how binary tree is serialized on OJ.

Subscribe to see which companies asked this question

Hide Tags
Tree Hash
Table Stack

Hide Similar Problems
(M) Validate Binary Search Tree (M)
Binary Tree Preorder Traversal (H) Binary Tree Postorder Traversal(M)
Binary Search Tree Iterator (M) Kth Smallest Element in a BST (H)
Closest Binary Search Tree Value II (M) Inorder Successor in BST

c++ code:
/**
* 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> ivec;
TreeNode *p=root;
stack<TreeNode *> s;
while(p || !s.empty()){
while(p){
s.push(p);
p=p->left;
}
if(!s.empty()){
p=s.top();
ivec.push_back(p->val);
s.pop();
p=p->right;
}
}
return ivec;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: