二叉树的前序遍历

来源:互联网 发布:金刚1024控台编程 编辑:程序博客网 时间:2024/06/05 17:13

一、问题描述

  给出一棵二叉树,返回其节点值的前序遍历。

样例

给出一棵二叉树 {1,#,2,3},

   1    \     2    /   3

 返回 [1,2,3].

二、解题思路

       定义一个向量容器用来存储前序遍历的节点,然后根据前序遍历的方式即先存储根节点,再左子树,再右子树的方式依次遍历存储。

三、我的代码

class Solution {
public:
    /**
     * @param root: The root of binary tree.
     * @return: Preorder in vector which contains node values.
     */
    vector<int> preorderTraversal(TreeNode *root) {
       vector<int> T;
       preorder(T,root);
       return T;
    }
    void preorder(vector<int>&T,TreeNode *root)
    {
        if(root==NULL) return;
        else
        {
            T.push_back(root->val);
            preorder(T,root->left);
            preorder(T,root->right);
        }
    }
};

四、我的感想

    和中序遍历的思想差不多,都是要用vector容器存储依次遍历的节点,只是遍历的方式不一样罢了。


0 0