zoukankan      html  css  js  c++  java
  • Lintcode---二叉树的前序、中序、后序遍历

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

    样例

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

       1
        
         2
        /
       3

    返回 [3,2,1]

    思路:二叉树的后序遍历,简单题目,递归方法,要很快撸出来,非递归方法也要熟悉;
               后序遍历:左->右->根
       

               注意,注意,注意! 递归的时候一定要注意定义的变量是否会在每次递归时重新定义;

    /**
     * Definition of TreeNode:
     * class TreeNode {
     * public:
     *     int val;
     *     TreeNode *left, *right;
     *     TreeNode(int val) {
     *         this->val = val;
     *         this->left = this->right = NULL;
     *     }
     * }
     */
    class Solution {
        /**
         * @param root: The root of binary tree.
         * @return: Postorder in vector which contains node values.
         */
        /*
        二叉树的后序遍历,简单题目,递归方法,要很快撸出来,非递归方法也要熟悉;
        后序遍历:左->右->根
        注意,注意,注意! 递归的时候一定要注意定义的变量是否会在每次递归时重新定义;
        */
    public:
    
        vector<int> vec;
        vector<int> postorderTraversal(TreeNode *root) {
            // write your code here
            if(root==NULL){
                return vec;
            }
            if(root->left!=NULL){
                postorderTraversal(root->left);
            }
            
            if(root->right!=NULL){
                postorderTraversal(root->right);
            }
            
            vec.push_back(root->val);
            
            return vec;
            
        }
    };
    


    给出一棵二叉树,返回其中序遍历

    样例

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

       1
        
         2
        /
       3

    返回 [1,3,2].

    思路: 中序遍历:左->根->右
          

               非递归方法,也要熟悉;

    /**
     * Definition of TreeNode:
     * class TreeNode {
     * public:
     *     int val;
     *     TreeNode *left, *right;
     *     TreeNode(int val) {
     *         this->val = val;
     *         this->left = this->right = NULL;
     *     }
     * }
     */
    class Solution {
        /**
         * @param root: The root of binary tree.
         * @return: Inorder in vector which contains node values.
         */
        /*
        用递归的方法,二叉树中序遍历,简单题目;
        中序遍历:左->根->右
        非递归方法,也要熟悉;
        */
    public:
        vector<int> vec;
        vector<int> inorderTraversal(TreeNode *root) {
            // write your code here
            
            if(root==NULL){
                return vec;
            }
            
            if(root->left!=NULL){
                inorderTraversal(root->left);
            }
            vec.push_back(root->val);
            
            if(root->right!=NULL){
                inorderTraversal(root->right);
            }
            
            return vec;
        }
    };
    


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

    样例

    给出一棵二叉树 {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.
         */
        /*
        简单题,递归方法要在五分钟内快速正确的撸出来;
        先序遍历:根->左->右
        */
        
        vector<int> vec;
        vector<int> preorderTraversal(TreeNode *root) {
            // write your code here
            if(root==NULL){
                return vec;
            }
            
            vec.push_back(root->val);
            
            if(root->left!=NULL){
                preorderTraversal(root->left);
            }
            
            if(root->right!=NULL){
                preorderTraversal(root->right);
            }
            
            return vec;
        }
    };
    
  • 相关阅读:
    团队项目第一阶段-意见评论
    团队项目第一阶段-意见汇总
    团队项目第一阶段-项目评审
    团队第一阶段冲刺成果展示
    2020年12月13日
    2020年12月12日
    2020年12月11日
    2020年12月10日
    2020年12月9日
    《代码大全2》阅读笔记06
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/7110954.html
Copyright © 2011-2022 走看看