| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Leetcode0590: N 叉树的后序遍历(simple 递归,迭代) -> 正文阅读 |
|
[数据结构与算法]Leetcode0590: N 叉树的后序遍历(simple 递归,迭代) |
目录 1. 题目描述
n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 示例 1: ? 示例 2: ? 提示: 进阶:递归法很简单,你可以使用迭代法完成此题吗? 来源:力扣(LeetCode) 2. 解题分析2.1 递归????????N叉树的后序遍历与二叉树的后序遍历基本相同。 ? ? ? ? 是先遍历所有子树,最后遍历节点自身。参考Leetcode0145: 二叉树的后序遍历。 ? ? ? ? 代码参见:postorderRecursion() 2.2 迭代? ? ? ? 与二叉树遍历一样,也可以用迭代的方式来实现。 ? ? ? ? 但是由于N叉树的N是不确定的(二叉树确定性地最多只有左子树和右子树),所以一方面需要使用for-loop循环处理来遍历children;另一方面,由于是for-loop内嵌于while循环之中,break/continue的控制需要注意,与二叉树时有差异。处理流程如下: ? ? ? ? (1)栈、visited、ans初始化 ? ? ? ? (2)将根节点入栈,同时将根节点加入visited ? ? ? ? (3)当栈不为空: ? ? ? ? ? ? ? ? (3-1)从栈中弹出一个节点 ? ? ? ? ? ? ? ? (3-2)遍历该节点的子节点,对于每个不在visited中的子节点: ? ? ? ? ? ? ? ? ? ? ? ? 如果该子节点为叶子节点,将其值加入ans以及visited,回到(3-2) ????????????????????????如果该子节点不是叶子节点,将该节点和该子节点入栈,回到(3)???????????????? ? ? ? ? ? ? ? ? (3-4)如果该节点还有子节点待处理(即尚未加入ans)回到(3) ? ? ? ? ? ? ? ? (3-5)将其值加入ans,将其加入visited,回到(3) ? ? ? ? 以以上示例1为例,围绕进出栈的处理步骤如下所示: ? ? ? ? (1) 1入 ? ? ? ? (2) 1出 ? ? ? ? (3) 1入,3入 ? ? ? ? (4) 3出,进ans/visited ? ? ? ? (5) 3入,5入 ? ? ? ? (6) 5出,进ans/visited ? ? ? ? (7) 3出 ? ? ? ? (8) 3入,6入 ? ? ? ? (9) 6出,进ans/visited ? ? ? ? (10) 3出,进ans/visited ? ? ? ? (11) 1出 ? ? ? ? (12) 1入,2入 ????????(13) 2出,进ans/visited ? ? ? ? (14) 1出 ? ? ? ? (15) 1入,4入 ????????(16) 4出,进ans/visited ????????(17) 1出,进ans/visited ? ? ? ? 虽然略显繁琐,但是手动推演一遍,是确保完全理解的必经之路。 3. 代码实现
回到主目录:笨牛慢耕的Leetcode解题笔记(动态更新。。。)https://chenxiaoyuan.blog.csdn.net/article/details/123040889 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 13:32:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |