简单的中序遍历(力扣94)

文章介绍了LeetCode中自定义的TreeNode类,其包含val、left和right属性,用于构建二叉树结构。讨论了inorderTraversal方法的递归实现,以及如何通过DFS进行中序遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目地址:. - 力扣(LeetCode)

TreeNode属性:

在这段代码中,TreeNode 是一个自定义的二叉树节点类,它可能具有以下属性:

  1. val: 这是节点的值,通常是一个整数或其他数据类型。它表示二叉树节点存储的实际数据。

  2. left: 这是指向左子树的指针或引用。它指向当前节点的左子节点。

  3. right: 这是指向右子树的指针或引用。它指向当前节点的右子节点。

例如,以下是一个可能与代码中的 TreeNode 类对应的示例实现:

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    public TreeNode(int val) {
        this.val = val;
    }
}

在这个示例中,TreeNode 类只有一个 val 属性,以及 left 和 right 两个指向子节点的属性。当然,根据实际情况,TreeNode 类可能还有其他属性和方法来支持二叉树的操作和功能。

每个 TreeNode 实例代表二叉树中的一个节点,通过使用这些属性,可以构建具有层级结构的二叉树。通过设置节点的值、左子树和右子树的引用,可以建立起节点之间的连接,构成完整的二叉树数据结构。

解法一:递归排序

/**
 * 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> inorderTraversal(TreeNode root) {
        //这里姑且理解,是new了一个ArrayList数组,但此时此刻他是空的
        List <Integer> res= new ArrayList<Integer>();
        //调用递归函数,res一开始的确是空的,但是在dfs函数中会给你添加数据,emm至于为啥我也不太懂
        dfs(res,root);
        return res;
    //TreeNode似乎是他自己定义的一个类,有左孩子右孩子,
    }void dfs(List<Integer>res,TreeNode root){
        //终止条件
        if(root==null){
            return;
        }
        dfs(res,root.left);
        res.add(root.val);
        dfs(res,root.right);
    }
}

解法二:

沉默了,我不太会,我的三百块钱.......

插个眼,这个博主蛮清晰的:. - 力扣(LeetCode)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值