二叉树的前序遍历
2017-04-08 11:12
169 查看
1.问题描述:给出一棵二叉树,返回其节点值的前序遍历。
2.思路:正如给定样例
给出一棵二叉树
返回
应该建立一个向量用于储存遍历过的节点,最终再返回这个向量,即可得到该二叉树的前序遍历。前序遍历为先访问树的根节点再按前序遍历的方式访问树的左子树、右子树。
3.代码:
4.感想:这个题目与之前所接触的前序遍历的不同的是储存在向量中,所以每遍历一个节点都要将其储存在向量中!
2.思路:正如给定样例
给出一棵二叉树
{1,#,2,3},
1 \ 2 / 3
返回
[1,2,3].
应该建立一个向量用于储存遍历过的节点,最终再返回这个向量,即可得到该二叉树的前序遍历。前序遍历为先访问树的根节点再按前序遍历的方式访问树的左子树、右子树。
3.代码:
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Solution { public: /** * @param root: The root of binary tree. * @return: Preorder in vector which contains node values. */ vector<int> preorderTraversal(TreeNode *root) { // write your code here vector<int> v; pre(v,root); return v; } void pre(vector<int> &v,TreeNode*root) { if(root==NULL) return; else{ v.push_back(root->val); pre(v,root->left); pre(v,root->right); } } };
4.感想:这个题目与之前所接触的前序遍历的不同的是储存在向量中,所以每遍历一个节点都要将其储存在向量中!
相关文章推荐
- lintcode,二叉树的前序遍历
- 二叉树的前序遍历,中序遍历,后序遍历以及相互之间的求法
- lintcode 容易题:Binary Tree Preorder Traversal 二叉树的前序遍历
- 算法习题43:递归和非递归实现二叉树的前序遍历
- 二叉树的前序遍历
- 二叉树的前序遍历
- 非递归前序遍历二叉树-代码实例讲解
- 【遍历二叉树】01二叉树的前序遍历【Binary Tree Preorder Traversal】
- 66. 二叉树的前序遍历
- 二叉树的前序遍历,中序遍历和后序遍历(c#)
- 前序和中序重建二叉树, 树的前序递归,中序递归,后序递归遍历和前序非递归,中序非递归,后序非递归遍历
- 第四题:根据前序和中序遍历结果重建二叉树(Arrays常用方法)
- 二叉树的前序遍历的非递归算法(一)
- 用一棵二叉树的前序遍历结果和中序遍历结果还原这棵二叉树――6
- 数据结构-----前序遍历二叉树非递归算法(利用堆栈实现)
- C++实现二叉树 前序遍历, 后序遍历, 中序遍历, 层序遍历(不用递归)
- 重建二叉树,输入某二叉树的前序遍历和中序遍历的结果,重建出二叉树,假设输入的前序和中序遍历结果中不含重复的数字
- 重建二叉树(根据前序和中序遍历结果)
- [LintCode]66.二叉树的前序遍历
- 66.二叉树的前序遍历