[LeetCode] Binary Tree Inorder Traversal Solution
2016-01-12 11:09
453 查看
Given a binary tree, return the inorder[/i] traversal of its nodes’ values.
For example:
Given binary tree
return
Note:[/b] Recursive solution is trivial, could you do it iteratively?
confused what
» Solve this problem
[Thoughts]
For recursion version, it’s very easy to write.
But for iterative version, we need a stack to help.
Iteration version
For example:
Given binary tree
{1,#,2,3},
1 2 / 3
return
[1,3,2].
Note:[/b] 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.
» Solve this problem
[Thoughts]
For recursion version, it’s very easy to write.
But for iterative version, we need a stack to help.
Recursion version [code]1: vector<int> inorderTraversal(TreeNode *root) { 2: // Start typing your C/C++ solution below 3: // DO NOT write int main() function 4: vector<int> result; 5: inorderTra(root, result); 6: return result; 7: } 8: void inorderTra(TreeNode* node, vector<int> &result) 9: { 10: if(node == NULL) 11: { 12: return; 13: } 14: inorderTra(node->left, result); 15: result.push_back(node->val); 16: inorderTra(node->right, result); 17: }
Iteration version
1: vector<int> inorderTraversal(TreeNode *root) { 2: // Start typing your C/C++ solution below 3: // DO NOT write int main() function 4: vector<TreeNode*> sta; 5: vector<int> result; 6: if(root == NULL) return result; 7: TreeNode* node =root; 8: while(sta.size()>0 || node!=NULL) 9: { 10: while(node!=NULL) 11: { 12: sta.push_back(node); 13: node = node->left; 14: } 15: node= sta.back(); 16: sta.pop_back(); 17: result.push_back(node->val); 18: node =node->right; 19: } 20: return result; 21: }
相关文章推荐
- [LeetCode] Binary Tree Level Order Traversal Solution
- [LeetCode] Binary Tree Maximum Path Sum Solution
- [LeetCode] 3 Sum, Solution
- [LeetCode] 3Sum Closest, Solution
- [LeetCode] Add Two Numbers, Solution
- [LeetCode] Climbing Stairs, Solution
- [LeetCode] Combination Sum, Solution
- Media foundation——Media source:Presentation Descriptors
- MVP模式在android的使用
- android中的AIDL进程间通信
- MSSQL Server数据的完整性
- Eclipse浏览项目的问题
- Android获取Manifest中<meta-data>元素的值
- 提交Hadoop作业失败,报错Connection refused
- git管理相关命令
- 使用flume thrift source的一点心得
- App的运行内存占用问题
- [LeetCode] Remove Nth Node From End of List 解题报告
- [LeetCode] Restore IP Addresses 解题报告
- [LeetCode] Reverse Integer 解题报告