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;

}

}

相关推荐
淡海水4 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
leobertlan5 小时前
好玩系列:训练一个神经网络模型指导小孩玩游戏2-大局观教练
算法
Tisfy6 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
乐迪信息6 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
kiracrimson7 小时前
从缓存的角度看链表与线性表的差异
数据结构·链表·缓存
木井巳8 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
心抵鹊8 小时前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥8 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
shehuiyuelaiyuehao9 小时前
算法34,位运算符操作,总结
算法
Navigator_Z9 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode