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;

}

}

相关推荐
倒头就睡的小比特3 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼3 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
m0_547486663 天前
《数据结构教程》全套 PPT课件2026
数据结构
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark3 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her13 天前
并查集-听课笔记
笔记·算法·并查集
码流子3 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven3 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark3 天前
从算法设计模式看编程思维的抽象能力4
算法