当前位置: 首页 > news >正文

LintCode第68题-二叉树的前序遍历,第67题-二叉树的后序遍历

第66题:

描述

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

  • 首个数据为根节点,后面接着是其左儿子和右儿子节点值,"#"表示不存在该子节点。
  • 节点数量不超过20
  • 样例 1:

    输入:

    二叉树 = {1,2,3}

    输出:

    [1,2,3]

    解释:

          1/   \2       3

    它将被序列化为{1,2,3}前序遍历

    样例 2:

    输入:

    二叉树 = {1,#,2,3}

    输出:

    [1,2,3]

    解释:

         1\2/3

    它将被序列化为{1,#,2,3}前序遍历

代码如下:

/**

 * Definition of TreeNode:

 * public class TreeNode {

 *     public int val;

 *     public TreeNode left, right;

 *     public TreeNode(int val) {

 *         this.val = val;

 *         this.left = this.right = null;

 *     }

 * }

 */

public class Solution {

    /**

     * @param root: A Tree

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

     */

     List<Integer> preOrderList=new ArrayList<>();

    public List<Integer> preorderTraversal(TreeNode root) {

        // write your code here

        if(root==null)

        {

            return new ArrayList<>();

        }

        preOrderList.add(root.val);

        preorderTraversal(root.left);

        preorderTraversal(root.right);

        return preOrderList;

    }

}

第68题:

描述

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

  • 首个数据为根节点,后面接着是其左儿子和右儿子节点值,"#"表示不存在该子节点。
  • 节点数量不超过20

样例 1:

输入:

 
二叉树 = {1,2,3}

输出:

 
[2,3,1]

解释:

 
      1/   \2       3

它将被序列化为{1,2,3}之后进行后序遍历

样例 2:

输入:

二叉树 = {1,#,2,3}

输出:

[3,2,1]

解释:

     1\2/3

它将被序列化为{1,#,2,3}之后进行后序遍历

代码如下: 

/**

 * Definition of TreeNode:

 * public class TreeNode {

 *     public int val;

 *     public TreeNode left, right;

 *     public TreeNode(int val) {

 *         this.val = val;

 *         this.left = this.right = null;

 *     }

 * }

 */

public class Solution {

    /**

     * @param root: A Tree

     * @return: Postorder in ArrayList which contains node values.

     */

          List<Integer> postOrderList=new ArrayList<>();

    public List<Integer> postorderTraversal(TreeNode root) {

        // write your code here

        if(root==null)

        {

            return new ArrayList<>();

        }

        postorderTraversal(root.left);

        postorderTraversal(root.right);

        postOrderList.add(root.val);

        return postOrderList;

    }

}

相关文章:

  • 构件是一个逻辑概念,还是一个物理概念?
  • 【vite好用的配置】自动导入组件、vue中的hook、路径解析、打包配置、本地运行反向代理配置
  • 如何通过ABAP获取SAP生产订单的目标成本
  • 【无标题】I/O复用(epoll)三者区别▲
  • LeetCode 热题 100 24. 两两交换链表中的节点
  • JS正则表达式介绍(JavaScript正则表达式)
  • AI与机器人学:从SLAM到导航的未来
  • leetcode 2918. 数组的最小相等和 中等
  • Windows右键管理工具:轻松添加/删除/修改右键菜单项!
  • 常见的算法介绍
  • c++ struct类型加强
  • Python实例题:Python协程详解公开课
  • 如何让“语言不通”的纺织设备通过Profinet转CanOpen网关“聊”起来?
  • Ethercat转Profinet网关如何用“协议翻译术“打通自动化产线任督二脉
  • 数据库中的 Segment、Extent、Page、Row 详解
  • Vue3响应式原理源码解析(通俗易懂版)
  • C PRIMER PLUS——第7节:指针
  • OC语言学习——Foundation框架(上)
  • adamantix系统详细讲解
  • 数据结构与算法:树型dp
  • 人民空军:网上出现的“运-20向外方运送物资”为不实消息
  • 普京提议恢复直接谈判,泽连斯基:望俄明日停火,乌愿谈判
  • “犍陀罗艺术与亚洲文明”在浙大对外展出
  • “春申阡陌”漆画展:将传统漆艺融入现代创作
  • 综艺还有怎样的新可能?挖掘小众文化领域
  • 中国金茂新任命三名副总裁,撤销区域公司