[leetcode]二叉树先序遍历
2015-02-06 16:10
393 查看
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; //先序遍历递归版本 vector<int> result; vector<int> preorderTraversal(TreeNode *root) { if (root!=NULL) { result.push_back(root->val); preorderTraversal(root->left); preorderTraversal(root->right); } return result; } //先序遍历栈版本1(数组) const int maxsize =1000; vector<int> preorderTraversal(TreeNode *root) { vector<int> result; TreeNode *st[maxsize],*p; int top=-1; if (root!=NULL) { top++; st[top]=root; while(top>-1) { p=st[top]; top--; result.push_back(p->val); if (p->right!=NULL) { top++; st[top]=p->right; } if (p->left!=NULL) { top++; st[top]=p->left; } } } return result; } //先序遍历栈版本2(STL) vector<int> preorderTraversal(TreeNode *root) { vector<int> result; TreeNode *p; stack<TreeNode *> st; if (root!=NULL) { st.push(root); //根节点进栈 while(!st.empty()) { p=st.top(); //退栈并访问该节点 st.pop(); result.push_back(p->val); if (p->right!=NULL) //右孩子先进栈 { st.push(p->right); } if (p->left!=NULL) { st.push(p->left); } } } return result; }
相关文章推荐
- [LeetCode]105 根据先序遍历和中序遍历构建二叉树
- [LeetCode] 144. Binary Tree Preorder Traversal 二叉树的先序遍历
- [leetcode-二叉树先序遍历]--144.Binary Tree Preorder Traversal
- 【leetcode】二叉树先序遍历(stack)
- LeetCode Binary Tree Preorder Traversal (二叉树先序遍历非递归)
- LeetCode:Binary Tree Preorder Traversal(二叉树的先序遍历)
- [leetcode]_根据二叉树的先序遍历(后序遍历) + 中序遍历 重建二叉树
- Leetcode Binary Tree Preorder Traversal 二叉树先序遍历
- 【leetcode】非递归先序遍历二叉树(Binary Tree Preorder Traversal)
- leetcode_100题——Same Tree (二叉树的递归-先序遍历)
- [LeetCode]144 二叉树先序遍历
- LeetCode 144 Binary Tree Preorder Traversal (先序遍历二叉树)
- 【LeetCode】144. Binary Tree Preorder Traversal-二叉树先序遍历
- [LeetCode] Binary Tree Preorder Traversal 二叉树的先序遍历
- 每天一道LeetCode-----根据先序遍历和中序遍历还原二叉树
- 【LeetCode】144. Binary Tree Preorder Traversal 二叉树先序遍历的非递归实现
- leetcode 题解:Binary Tree Preorder Traversal (二叉树的先序遍历)
- 求二叉树的先序遍历
- 每天一道LeetCode-----计算二叉树的最大路径和,路径只需要从一个节点到达另一个节点,无其他要求
- [LeetCode] Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树