LeetCode589题:N叉树的前序遍历(Java)

本文介绍了LeetCode589题的解决方案,使用Java实现N叉树的前序遍历。通过递归方法,首先访问根节点,再遍历其所有子节点。具体步骤包括获取节点值,将其添加到结果列表,接着遍历子节点,直到最底层节点。代码执行成功,返回前序遍历的结果列表。

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

题目描述:
在这里插入图片描述
在这里插入图片描述
解法思路:
  这次我们用比较简单的递归的方法来解决这道题。题目给出一个Node类来代表这个N叉树,观察这个类,我们可以发现有两个属性,一个是val,获取当前节点的索引值,一个集合children,封装了它的子节点。因为采用的是前序遍历,前序遍历的顺序是先根节点,再左子节点,再右子节点。因此,我们可以创建一个函数,传进题目给出来的Node类对象和一个List集合,然后直接获取当前的索引值,添加到集合里。然后通过for循环遍历它的子节点,然后子节点再调用这个函数。当遍历到最下层的子节点的时候,我们可以通过判断索引值是否为空,来决定是否跳出循环。最后返回这个List集合即可。

代码实现:

class Solution {
    public List<Integer> preorder(Node root) {
        List<Integer> list=new LinkedList<>();
        bianli(list,root);
        return list;
    }

    void bianli(List<Integer> list,Node root){
        if(root==null){
            return ;
        }
        list.add(root.val);
        for(Node node:root.children){
            bianli(list,node);
        }
    }
}

执行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值