前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode-144. 二叉树的前序遍历(java)

LeetCode-144. 二叉树的前序遍历(java)

作者头像
bug菌
发布2023-05-27 15:11:23
1320
发布2023-05-27 15:11:23
举报

一、前言:

👨‍🎓作者:bug菌 ✏️博客:CSDN​、掘金等 💌公众号:​​猿圈奇妙屋​​ 🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。 🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系bug菌处理。

二、题目描述:

题目:

      给你二叉树的根节点 ​​root​​ ,返回它节点值的 前序遍历。

具体请看如下示例:

示例 1:

LeetCode-144. 二叉树的前序遍历(java)_二叉树
LeetCode-144. 二叉树的前序遍历(java)_二叉树
代码语言:javascript
复制
输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

代码语言:javascript
复制
输入:root = []
输出:[]

示例3:

代码语言:javascript
复制
输入:root = [1]
输出:[1]

示例4:

LeetCode-144. 二叉树的前序遍历(java)_子树_04
LeetCode-144. 二叉树的前序遍历(java)_子树_04
代码语言:javascript
复制
输入:root = [1,2]
输出:[1,2]

示例5:

LeetCode-144. 二叉树的前序遍历(java)_子树_06
LeetCode-144. 二叉树的前序遍历(java)_子树_06
代码语言:javascript
复制
输入:root = [1,null,2]
输出:[1,2]

提示:

  • 树中节点数目在范围​​[0, 100]​​ 内
  • ​-100 <= Node.val <= 100​

题目来源:​​LeetCode官网​​ 题目难度:⭐⭐

三、思路分析:

​LeetCode-94. 二叉树的中序遍历(day19)​

       所谓二叉树的前序遍历:它是按照访问根节点->左子树->右子树顺序方式来遍历这棵树,而在访问二叉树的左子树或者右子树的时候,我们按照同样的顺序遍历,直到遍历完整棵树即可。这不就是你们喜欢的递归法,纯天然契合,套娃模式开启。

四、算法实现:

AC代码

具体算法代码实现如下:

代码语言:javascript
复制
class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {

        //定义一个全局变量。用于存放节点
        List<Integer> res = new ArrayList<Integer>();
        preorder(root, res);
        return res;
    }

    //按根节点->左子树->右子树顺序遍历
    public void preorder(TreeNode root, List<Integer> res) {
        //遇空直接返回
        if (root == null) {
            return;
        }
        //根节点->左子树->右子树顺序

五、总结:

leetcode提交运行结果截图如下:

LeetCode-144. 二叉树的前序遍历(java)_递归_09
LeetCode-144. 二叉树的前序遍历(java)_递归_09

复杂度分析:

  • 时间复杂度:O(n)。其中 nn 是二叉树的节点数。每一个节点恰好被遍历一次。
  • 空间复杂度:O(n)。为递归过程中栈的开销,平均情况下为 O(logn),最坏情况下树呈现链状,为 O(n)。

       总而言之,这种题就是你懂它的遍历顺序,然后写法都一致的,懂一种解题思路即可,比如你们最喜欢的递归法,这就很契合,但不是什啥时候就讲究递归啊,比如这题其实迭代也不错,相对递归就是麻烦一点,感兴趣的小伙伴欢迎尝试。

       再者,解题道路千万条,欢迎小伙伴们脑洞大开,如果你们有啥更好的想法或者思路,欢迎评论区告诉我哦,大家一起互相借鉴互相学习,方能成长的更快。

       好啦,以上就是本期的所有内容啦,咱们下期见咯。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言:
  • 二、题目描述:
  • 三、思路分析:
  • 四、算法实现:
  • 五、总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档