您的位置:首页 > 其它

二叉树的前序遍历

2017-04-09 15:42 183 查看


问题描述

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

实现思路:

创建一个动态数组存放每个节点的值。利用递归,先访问根,再访问左子树,最后访问右子树。最后返回向量V。

实现代码:

/ * 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:

    std::vector<int> v;

    /**

     * @param root: The root of binary tree.

     * @return: Preorder in vector which contains node values.

     */

    vector<int> preorderTraversal(TreeNode *root) {

        // write your code here

      

      if (root != NULL)

       {  v.push_back(root->val);

             preorderTraversal(root->left);

             preorderTraversal(root->right);

      }

     

      return v;

    }

};

感想:

前序遍历的定义是:如果树为空,则空操作返回;否则:(1)访问根节点。(2)按照从左到右的顺序前序遍历根节点的每一棵子树。对子树的遍历也是前序遍历,所以用递归思想。还要考虑root为空的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二叉树 递归 遍历