leetcode: Binary Tree Inorder Traversal
来源:互联网 发布:则知明而行无过矣的知 编辑:程序博客网 时间:2024/05/17 06:21
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.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.迭代实现:
/** * Definition for binary tree * 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) { TreeNode *p; vector<int> res; stack<TreeNode *> st; if (root) { st.push(root); while (!st.empty()) { p = st.top(); if (p->left) { st.push(p->left); continue; } while (!st.empty()) { p = st.top(); st.pop(); res.push_back(p->val); if (p->right) { st.push(p->right); break; } } //inter loop } //outer loop } //if block return res; }};
递归实现:
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> res; vector<int> inorderTraversal(TreeNode *root) { if (root) { inorderTraversal(root->left); res.push_back(root->val); inorderTraversal(root->right); } return res; }};
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
- [COGS383]单向双轨道解题报告
- BGP 什么时候需要用 next-hop-self 与 ebgp-multihop 2
- HDU1812 Count the Tetris
- OC里面的集中数组遍历方法
- 北京人文之旅
- leetcode: Binary Tree Inorder Traversal
- nyoj195 飞翔
- PhotoShop算法实现--色彩均衡化(十一)
- python中闭包的实现
- cocos2dx lua中继承与覆盖C++方法
- 【管理心得之四十五】你呀,没心
- centos6.5配置FTP站点vsftpd的问题
- Leetcode_66_Plus One
- ffmpeg_doc(二)decoding_encodeing.c