Binary Tree Inorder Traversal (leetcode)
来源:互联网 发布:时时彩毒胆计划软件 编辑:程序博客网 时间:2024/06/05 16:27
题目:
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}"
.二叉树的中序遍历,其中inorder函数是递归版本的遍历,而inorderIterat是迭代版的中序遍历。
#include<iostream>#include<vector>#include<stack>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};void inorder(TreeNode *root,vector<int> &result){if(root==NULL)return ;inorder(root->left,result);result.push_back(root->val);inorder(root->right,result);}void inorderIterat(TreeNode *root,vector<int> &result){stack<TreeNode*> s;s.push(root);TreeNode* temp=s.top();while(temp->left!=NULL){temp=temp->left;s.push(temp);}while(!s.empty()){temp=s.top();result.push_back(temp->val);s.pop();if(temp->right!=NULL){s.push(temp->right);temp=s.top();while(temp->left!=NULL){temp=temp->left;s.push(temp);}}}}vector<int> inorderTraversal(TreeNode *root){vector<int> result;if(root==NULL)return result;//inorder(root,result);//递归版本inorderIterat(root,result);//迭代版本return result;}int main(){TreeNode *root=new TreeNode(1);root->left=new TreeNode(2);root->right=new TreeNode(3);vector<int> result=inorderTraversal(root);for(int i=0;i<result.size();i++)cout<<result[i]<<" ";cout<<endl;system("pause");return 0;}
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
- java同步/设置Linux系统时间
- Fleet问题
- ubuntu下如何用命令行运行deb安装包
- UML是啥?
- Adapter优化
- Binary Tree Inorder Traversal (leetcode)
- Drawable资源
- Ubuntu 12.04 安装 Subversion 1.7
- I/O
- Remove Element - LeetCode
- spring用jdbc访问oracle数据库方法
- Mac下firfox访问https限制问题
- Java大数类介绍
- Office文档转换成PDF文档