Leetcode每日一题:589. N 叉树的前序遍历

2023-11-05

在这里插入图片描述
前序遍历二叉树的要点就是根左右
在这里遍历的是n叉树,因此先访问根节点,然后再遍历根节点的每个孩子就可以了

递归解法

"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        res = []
        def dfs(root):
            if root is None:
                return 
            res.append(root.val)
            for ch in root.children:
                dfs(ch)
        dfs(root)
        return res

迭代解法

采用栈来解决,先访问根节点,然后将根节点的孩子倒序入栈,再判断每个孩子是否是根节点,是的话重复上面的操作


"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def preorder(self, root: 'Node') -> List[int]:
        stack, ans = [root], []
        while stack:
            node = stack.pop()
            if node:
                ans.append(node.val)
                for child in node.children[::-1]:
                    stack.append(child)
        return ans


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leetcode每日一题:589. N 叉树的前序遍历 的相关文章

随机推荐

  • Qt 实现关闭窗口触发事件

    目录 Qt 实现关闭窗口触发事件 QT中窗口关闭自动销毁 参考 Qt保存MainWindow的窗口布局 并在再次打开时显示 https blog csdn net qq 39417283 article details 114024286
  • GitHub中公私钥的配置

    一 生成新 SSH 密钥 1 打开 git 的命令行窗口 即 Git Bash 2 粘贴下面的文本 替换为你的 GitHub 电子邮件地址 GitHub 中生成新的 SSH 密钥 ssh keygen t ed25519 C your em
  • ActiveMQ发布-订阅消息模式

    ActiveMQ发布 订阅消息模式 一 订阅杂志 二 发布 订阅消息模式 一 订阅杂志 我们很多人都订过杂志 其过程很简单 只要告诉邮局我们所要订的杂志名 投递的地址 付了钱就OK 出版社定期会将出版的杂志交给邮局 邮局会根据订阅的列表 将
  • 面试官:说说 git 发生冲突的场景?如何解决?​

    一 是什么 一般情况下 出现冲突的场景有如下 多个分支代码合并到一个分支时 多个分支向同一个远端分支推送 具体情况就是 多个分支修改了同一个文件 任何地方 或者多个分支修改了同一个文件的名称 如果两个分支中分别修改了不同文件中的部分 是不会
  • vue3 elementui el-table滚动到指定位置

    vue3 elementui el table滚动到指定位置 nextTick gt setTimeout gt let dom document querySelector el drawer body reTable value scr
  • 安卓移动应用开发之从零开始写程序5

    实验5 多界面程序的创建 案例1 QQ登陆界面的跳转 实现最终效果图如下 当我们点击登陆按钮 界面跳转到登陆成功界面 账号密码的判断暂时不写 并显示我们输入的账号和密码 如图 当我们点击返回按钮则返回初始界面 实验知识点 1 基本控件和布局
  • unity-Fatal Error GC-GetThreadContext Failed

    这几次在使用unity5 3打windows包后 运行x exe不久总是会弹出 fatal error GC GetThreadContext Failed 的错误 到网上查了 各种说法都有 我干脆换了unity5 6版本 但是问题依然存在
  • java.lang.NumberFormatException: Invalid int: “0 “

    关于 今天在接手前人模块开发的时候 测试一个数据列表点击跳转详细页面的时候奔溃了 控制台 主要出现的错误提示是这句 java lang NumberFormatException Invalid int 0 问题原因转换了特殊字符 空格 等
  • 常用的python 命令

    安装依赖的命令 venv虚拟环境 下载依赖包 创建虚拟环境 python m venv lt 虚拟环境名称 gt python m venv venv 创建名为venv的虚拟环境 激活虚拟环境 source venv bin activat
  • IPO向上,大模型向下:中国企服寻找新「出口」

    2023年 资本市场给企服行业带来的动荡 无疑是一次洗牌机会 只有当SaaS企业深耕产业侧 才能找到实现标准化的解法 才能在一波又一波的浪潮下抓住机遇 作者 思杭 编辑 皮爷 出品 产业家 2023上半年 企服行业在二级市场表现得尤为热闹
  • Mac latex vscode配置外部PDF阅读器并配置对应跳转

    1 下载并安装Skim 下载链接 https sourceforge net projects skim app 2 配置skim touch displayfile txt open displayfile txt 在文本中写入 bin
  • Unity Animation从UAS获取动画资产到编制状态机控制简单的人物动画

    Animation 动画 0 前言 这个笔记用于讨论在Unity中开发游戏时使用动画的相关知识 这个笔记最终期望能够达到 在Unity的Demo中展现一个人物 其能够进行类似挥拳 开门的具体动作 我将这个任务进一步的划分 第一阶段 获得动画
  • 环形内存circular_buffer

    boost中支持环形内存 该内存在一些地方还是蛮实用的 简单看下具体使用及部分源码 使用和源码相对来说都还是比较简单 易于理解的 与STL接口基本一致 void CCircularBufferTest TestCircularBuffer
  • 双向链表和循环双向链表的基本操作

    双向链表和循环双向链表的基本操作 include
  • Libevent库的介绍与应用

    Libevent库 Libevent概述 Libevent使用模型 Libevent库使用示例 Libevent事件类型和框架结构 使用Libevent完成tcp服务端 Libevent概述 Libevent是开源社区的一款高性能的I O框
  • VS远程连接调试Linux程序 ,vs找不到Linux头文件的解决办法

    使用VS编写Linux程序 可以将VS连接到Linux上 却出现了VS IDE中找不到 include
  • 小程序逆向工程:这个开源的小程序逆向工具真不错,2023年亲测成功

    前言 安全部门的大哥又双叒叕报了一个小程序的高危漏洞 他使用逆向工程破解了加密信心 用抓包修改了请求参数 又是头疼的一天 想成为一名微信小程序的开发者 前端思路的学习和安全意识是非常有必要的 故务必掌握小程序反编译技能 这里用到了2个工具
  • 虚拟化KVM

    什么是虚拟化 在计算机技术中 虚拟化是一种资源管理技术 是将计算机的各种实体资源 CPU 内存 磁盘空间 网络适配器等 予以抽象 转换后呈现出来并可供分割 组合为一个或多个计算机配置环境 并重新分割 重新组合 已达到最大化合理利用物理资源的
  • 程序的运行结构

    一 程序的运行结构有三种 1 顺序结构 2 分支结构 3 循环结构 二 分支结构 根据代码的成立与否 选择执行方向 包括 if 判断条件 代码块 if else语句 一定会执行一个语句或者是if里面的 或者是else里面的 switch 整
  • Leetcode每日一题:589. N 叉树的前序遍历

    前序遍历二叉树的要点就是根左右 在这里遍历的是n叉树 因此先访问根节点 然后再遍历根节点的每个孩子就可以了 递归解法 Definition for a Node class Node def init self val None child