当前位置: 首页 > news >正文

【LeetCode-简单题】589. N 叉树的前序遍历

文章目录

    • 题目
    • 方法一:单循环栈做法
    • 方法二:递归

题目

在这里插入图片描述

方法一:单循环栈做法

关键在于子节点的入栈顺序,决定了子节点的出栈顺序,
因为是前序遍历 所以压栈顺序先让右边的入栈 依次往左 这样左边的节点会在栈顶 这样下次优先出栈的是左边的元素 满足前序遍历

 for(int i = root.children.size()-1 ; i>=0 ;i--)
                stack.push(root.children.get(i));
class Solution {
    public List<Integer> preorder(Node root) {
        if(root==null) return new ArrayList<>();
        List<Integer> res = new ArrayList<>();
        Deque<Node> stack = new LinkedList<>();
        stack.push(root);
        while(!stack.isEmpty()){
            root  = stack.pop();
            res.add(root.val);

            //因为是前序遍历  所以压栈顺序先让右边的入栈  依次往左  这样左边的节点会在栈顶 这样下次优先出栈的是左边的元素 满足前序遍历
            for(int i = root.children.size()-1 ; i>=0 ;i--)
                stack.push(root.children.get(i));
        }
        return res;
    }
}

方法二:递归

原理和二叉树的前序遍历一样 相当于把左右孩子 改成孩子集合了 孩子变多了而已,核心还是 根左右(先跟 再左孩子 在右孩子)

class Solution {
    List<Integer> res = new ArrayList<>();
    public List<Integer> preorder(Node root) {
        dfs(root);
        return res;
    }
    public void dfs(Node root){
        if(root == null) return;
        res.add(root.val);//前
        for(Node node : root.children)//中中中中中
        dfs(node);
    }
}

相关文章:

  • windows 安装Linux子系统 Ubuntu 并配置python3
  • 你需要知道DDD基本知识
  • GoAccess实时分析Nginx日志
  • Python批量统计pdf中“中文”字符的个数
  • C 初级学习笔记(基础)
  • Python之列表
  • java实现力扣计算器
  • Nginx 解决内容安全策略CSP(Content-Security-Policy)配置方式
  • Leetcode55. 跳跃游戏
  • 基于若依ruoyi-nbcio增加flowable流程待办消息的提醒,并提供右上角的红字数字提醒(八)
  • StartUML 5.1.0文本框中文自动换行和排版问题解决
  • Python:Django框架的Hello wrold示例
  • matlab读写json文件
  • unity自己对象池的使用
  • CHAPTER 10: DESIGN A NOTIFICATION SYSTEM
  • C/C++统计满足条件的4位数个数 2023年5月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • python装13的一些写法
  • flume安装及实战
  • 数据库选型参考
  • 数据分享|R语言生态学种群空间点格局分析:聚类泊松点过程对植物、蚂蚁巢穴分布数据可视化...
  • “五一”看什么?这里有一份申城视听指南
  • 人物|德国新外长关键词:总理忠实盟友、外交防务专家、大西洋主义者
  • 工业富联一季度净利增长25%,云计算业务营收增长超50%
  • 国家发改委下达今年第二批810亿超长期特别国债资金,支持消费品以旧换新
  • 卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 汽车爆炸致俄军中将死亡嫌疑人被羁押,作案全过程披露