LeetCode125|二叉树的前序遍历

时间:2022-07-28
本文章向大家介绍LeetCode125|二叉树的前序遍历,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1,问题简述

给定一个二叉树,返回它的 前序 遍历。

2,示例

示例:

输入: [1,null,2,3]  
   1
    
     2
    /
   3 

输出: [1,2,3]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

 

3,题解思路

使用递归来进行解决

4,题解程序


import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class PreorderTraversalTest2 {
    public static void main(String[] args) {
        TreeNode t1 = new TreeNode(1);
        TreeNode t2 = new TreeNode(2);
        TreeNode t3 = new TreeNode(3);
        t1.right = t2;
        t2.left = t3;
        List<Integer> list = preorderTraversal(t1);
        System.out.println("list = " + list);

    }

    private static List<Integer> list = new ArrayList<>();

    public static List<Integer> preorderTraversal(TreeNode root) {
        if (root == null) {
            return list;
        }
        dfs(root);
        return list;
    }


    private static void dfs(TreeNode root) {
        list.add(root.val);
        if (root.left != null) {
            dfs(root.left);
        }
        if (root.right != null) {
            dfs(root.right);
        }
    }
}

5,题解程序图片版

6,总结一下

对于这个题基于二叉树的特点来做还是比较容易的,这里也基于递归的方式进行做的,实现的基本逻辑都可以理解,这里没有给与详细的解释,自己看这部分的时候去多敲敲代码就可以了,这里就不过多说明什么了,这里也在不停的输出以往做过的内容题解,慢一点,才能更快,这是自己做公众号后面慢慢改变的一点看法,这里自己一般都是按照一篇题解来做的,慢一点,才能更快