刷题专栏(十):二叉树的前序遍历

简介: 刷题专栏(十):二叉树的前序遍历

前言

二叉树的题目还有很多,我打算把这些全做了。

今天的这道也是关于二叉树的题目,算得上是二叉树题目中比较简单的题目了,虽然这道题本身难度就是处于简单系列。

还是一起来看一下吧,顺便加深一下对二叉树的理解。

image.png

算法题:二叉树的前序遍历

本道题的题意,是要将一个二叉树中的值全部读取到一个list集合中。

这从题目本上来看其实很简单。

这里有一个非常重要的点需要注意一下,题目示例中并没有给出二叉树左右节点都有值的情况,并不是不会存在的,所以要把左右节点都考虑进去才行。

具体的一些实现思路,主要就是递归,从上几次的经验来看,递归是处理二叉树最有效的方式了。

通过递归方法,将左右子节点的值也一并放置到List集合中,最后就是我们要的预期结果了。

代码展示

运行代码如下,采用的就是上述方案,请各位查漏补缺。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> list = new ArrayList<Integer>();
        digui(root, list);
        return list;
    }
    public void digui(TreeNode root, List<Integer> list) {
        if (root == null) {
            return;
        }
        list.add(root.val);
        digui(root.left, list);
        digui(root.right, list);
    }
}

执行结果如下

结果可以说是相当不错了,二叉树的递归,加上List集合的搭配可以解决很多类型的问题。

image.png

总结

这道题本身并不难,二叉树的题目也做了好几道了,自然也就是递归方法来处理此类问题。

目录
相关文章
|
7月前
|
算法 索引
leetcode654最大二叉树刷题打卡
leetcode654最大二叉树刷题打卡
58 0
|
3月前
|
算法
二叉树面试题
本文介绍了二叉树相关的几个经典算法问题。首先讲解了如何判断两棵树是否完全相同(LeetCode 100),并给出了代码示例。接着讨论了如何判断一棵树是否是另一棵树的子树(LeetCode 572),详细分析了子树的定义及判断方法。然后介绍了翻转二叉树(LeetCode 226)的实现方法,即在遍历时交换每个节点的左右子树。随后探讨了如何判断一棵树是否是对称的(LeetCode 101),通过对左右子树的递归比较来实现。最后分析了平衡二叉树的概念(LeetCode 110)及判断方法,并给出了优化后的代码示例。此外,还简要介绍了二叉树遍历及二叉树最近公共祖先(LeetCode 236)的问题
31 6
二叉树面试题
|
7月前
leetcode96不同的二叉搜索树刷题打卡
leetcode96不同的二叉搜索树刷题打卡
37 1
|
7月前
|
存储 算法
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
61 0
|
7月前
|
算法
刷题专栏(六):二叉树的最大深度
刷题专栏(六):二叉树的最大深度
59 0
|
7月前
|
算法
六六力扣刷题二叉树之层序遍历
六六力扣刷题二叉树之层序遍历
62 0
|
存储 算法
代码随想录算法训练营第十三天 | LeetCode 144. 二叉树的前序遍历、LeetCode 145. 二叉树的后序遍历、LeetCode 94. 二叉树的中序遍历
代码随想录算法训练营第十三天 | LeetCode 144. 二叉树的前序遍历、LeetCode 145. 二叉树的后序遍历、LeetCode 94. 二叉树的中序遍历
65 0
热门二叉树面试题
热门二叉树面试题
62 0
leetcode刷题(9)二叉树(3)
各位朋友们,今天我为大家分享的是关于leetcode刷题二叉树相关的第三篇我文章,让我们一起来看看吧。