[leetcode] Binary Tree Inorder Traversal
来源:互联网 发布:法国 知乎 编辑:程序博客网 时间:2024/05/20 18:48
From : https://leetcode.com/problems/binary-tree-inorder-traversal/
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.
/** * 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> res; if(!root) return res; stack<TreeNode> box; box.push(*root); TreeNode *cur; while(!box.empty()) { cur = &(box.top()); while(cur->left) { cur = cur->left; box.push(*cur); } box.pop(); res.push_back(cur->val); if(cur->right) {box.push(*cur->right); } else { while(!box.empty()) { cur = &(box.top()); box.pop(); res.push_back(cur->val); if(cur->right) { box.push(*cur->right); break; } } } } return res; }};
/** * 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> res; if(!root) return res; stack<TreeNode> box; TreeNode* cur = root; while(!box.empty() || cur){ if(cur){ box.push(*cur); cur = cur->left; } else { TreeNode t = box.top(); box.pop(); res.push_back(t.val); cur = t.right; } } return res; }};
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<Integer> inorderTraversal(TreeNode root) {List<Integer> ans = new ArrayList<Integer>();if (root == null) {return ans;}Stack<TreeNode> box = new Stack<TreeNode>();TreeNode cur = root;while (!box.isEmpty() || cur != null) {if (cur != null) {box.push(cur);cur = cur.left;} else {TreeNode t = box.pop();ans.add(t.val);cur = t.right;}}return ans; }}
0 0
- LeetCode: Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- LeetCode : Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- 【leetcode】Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- [leetcode]Binary Tree Inorder Traversal
- LeetCode-Binary Tree Inorder Traversal
- Leetcode Binary Tree Inorder Traversal
- [leetcode] Binary Tree Inorder Traversal
- LeetCode - Binary Tree Inorder Traversal
- [LeetCode] Binary Tree Inorder Traversal
- LeetCode | Binary Tree Inorder Traversal
- Set Matrix Zeroes
- 6.12
- 如何阅读他人的程序代码
- 树莓派共享文件至pc(samba)
- LeetCode——Happy Number
- [leetcode] Binary Tree Inorder Traversal
- 2015061205 - 找工作相关问题
- java中对象句柄的解释
- 基于MINA框架快速开发网络应用程序
- 主从复制,读写分离
- 完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器
- 2015互联网校招总结—一路走来
- windows和linux中换行符的转换
- 网址保存