二叉树的前序遍历
2017-04-12 22:22
183 查看
问题描述:
给出一棵二叉树,返回其节点值的前序遍历。
样例
给出一棵二叉树
返回 [1,2,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.
*/
void preorder(vector<int>&v,TreeNode *root){
if(root==NULL) return ;
v.push_back(root->val);
preorder(v,root->left);
preorder(v,root->right);
}
vector<int> preorderTraversal(TreeNode *root) {
vector<int> v;
preorder(v,root);
return v;
// write your code here
}
};
感想:
注意中序遍历函数中的引用
给出一棵二叉树,返回其节点值的前序遍历。
样例
给出一棵二叉树
{1,#,2,3},
1 \ 2 / 3
返回 [1,2,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.
*/
void preorder(vector<int>&v,TreeNode *root){
if(root==NULL) return ;
v.push_back(root->val);
preorder(v,root->left);
preorder(v,root->right);
}
vector<int> preorderTraversal(TreeNode *root) {
vector<int> v;
preorder(v,root);
return v;
// write your code here
}
};
感想:
注意中序遍历函数中的引用
相关文章推荐
- leetcode刷题7:前序遍历二叉树
- 由树的前序遍历,中序遍历建立一颗二叉树,并以后续遍历的方式输出其元素
- 二叉树的前序遍历、中序遍历和后序遍历的递归和非递归算法
- LeetCode 根据前序和中序遍历构造二叉树的三种解法
- 【c语言】构建二叉树并前序遍历
- 简单二叉树的构造,前序遍历顺序为;中序遍历顺序为;后序遍历顺序为;
- LintCode:二叉树的前序遍历、中序遍历、后序遍历
- 输入某二叉树的前序和中序遍历结果,重建该二叉树
- [c++]已知二叉树的前序遍历与中序遍历结果(二叉树中不含重复数字),重构二叉树
- 根据前序和中序遍历创建二叉树
- 给出中序和后序遍历,构造二叉树以及给出前序和中序构造二叉树
- 已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树.
- 题目:二叉树的前序遍历
- LintCode_066_二叉树的前序遍历
- 根据前序和中序遍历结果重建二叉树
- LeetCode:Binary Tree Preorder Traversal(非递归方法前序遍历二叉树)
- 二叉树的前序遍历、中序遍历及后序遍历
- 二叉树的前序遍历非递归形式
- LeetCode Binary Tree Preorder Traversal 前序遍历二叉树 递归和非递归解法