问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4092 访问。

给定一个 N 叉树,返回其节点值的后序遍历

例如,给定一个 3叉树 :

返回其后序遍历: [5,6,3,2,4,1].

说明: 递归法很简单,你可以使用迭代法完成此题吗?


Given an n-ary tree, return the postorder traversal of its nodes' values.

For example, given a 3-ary tree:

Return its postorder traversal as: [5,6,3,2,4,1].

Note: Recursive solution is trivial, could you do it iteratively?


示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4092 访问。

public class Program {public static void Main(string[] args) {var root = new Node(1,new List<Node> {new Node(3, new List<Node> {new Node(5, null),new Node(6, null)}),new Node(2, null),new Node(4, null)});var res = Postorder(root);ShowArray(res);res = Postorder2(root);ShowArray(res);Console.ReadKey();}private static void ShowArray(IList<int> array) {foreach(var num in array) {Console.Write($"{num} ");}Console.WriteLine();}public static IList<int> Postorder(Node root) {var list = new List<int>();Post(root, ref list);return list;}public static void Post(Node root, ref List<int> list) {if(root == null) return;if(root.children == null) {list.Add(root.val);return;}foreach(var child in root.children) {Post(child, ref list);}list.Add(root.val);return;}public static IList<int> Postorder2(Node root) {if(root == null) return new List<int>();var list = new List<int>();if(root.children != null) {foreach(var node in root.children) {list.AddRange(Postorder2(node));}}list.Add(root.val);return list;}public class Node {public int val;public IList<Node> children;public Node() { }public Node(int _val, IList<Node> _children) {val = _val;children = _children;}}}

以上给出2种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4092 访问。

5 6 3 2 4 1
5 6 3 2 4 1

分析:

显而易见,以上2种算法的时间复杂度均为:  。

C#LeetCode刷题之#590-N叉树的后序遍历(N-ary Tree Postorder Traversal)相关推荐

  1. LeetCode Algorithm 590. N 叉树的后序遍历

    590. N 叉树的后序遍历 Ideas N叉树的后序遍历其实就是前序遍历翻转过来,所以我们可以用栈模拟递归得到前序遍历序列,然后翻转一下就OK了. Code Python class Solutio ...

  2. leetcode 589. N 叉树的前序遍历,590. N 叉树的后序遍历(Java版)

    589. N 叉树的前序遍历 https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/ 题解 import java.util.A ...

  3. LeetCode 590. N叉树的后序遍历(后序遍历)

    文章目录 1. 题目 2. 解题 2.1 递归 2.2 循环 1. 题目 2. 解题 2.1 递归 class Solution {public:vector<int> postorder ...

  4. 2022-5-1 Leetcode 590.N叉树的后序遍历

    递归法 class Solution {public:vector<int> postorder(Node* root) {vector<int> ans;recursion( ...

  5. [LeetCode] N-ary Tree Postorder Traversal N叉树的后序遍历

    Given an n-ary tree, return the postorder traversal of its nodes' values. For example, given a 3-ary ...

  6. ​LeetCode刷题实战314:二叉树的竖直遍历

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  7. LeetCode(590)——N叉树的后序遍历(JavaScript)

    给定一个 N 叉树,返回其节点值的后序遍历. 例如,给定一个 3叉树 : 返回其后序遍历: [5,6,3,2,4,1]. 说明: 递归法很简单,你可以使用迭代法完成此题吗? /*** // Defin ...

  8. leetcode590. N叉树的后序遍历

    给定一个 N 叉树,返回其节点值的后序遍历. 例如,给定一个 3叉树 : 思路:先遍历所有孩子,再放入自己. /* // Definition for a Node. class Node {publ ...

  9. 【从零单排之微软面试100题系列】09二叉查找树的后序遍历

    本题目选自July大神博客系列[微软面试100题]: july大神,该系列我主要用来记录我的学习笔记. 题目描述:输入1个整数数组,判断该数组是不是某二元查找树的后序遍历结果.数组保证任意两个数组均不 ...

最新文章

  1. 分析无线充电线圈产生的导航信号在自绕工字型电感中的感应电动势
  2. ThinkJava-复用类
  3. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)
  4. 20220130---CTF WEB方向刷题WP-----网页初始index.php/robots.txt
  5. 【ArcGIS风暴】ArcGIS10.6创建LAS数据集的两种方法并加载点云数据
  6. Abp连接多个数据源
  7. Linux系统编程 -- 多线程间同步和互斥
  8. std::string std::wstring 删除最后元素 得到最后元素
  9. 快速对二叉树和前中后序遍历的相互转化
  10. c语言全局变量global,C语言定义共享全局变量
  11. 韩顺平 教学资料下载
  12. 服务器之IP地址与域名之间的绑定
  13. 04 爬取周杰伦首页歌单
  14. 《假如给我三天光明》读后感及其摘录(2)
  15. siamfc-pytorch代码讲解(三):demotrack
  16. 用科技点亮公益力量,皮卡智能仅用2张照片,还原了老人一生的故事
  17. python后端开发简历分享_Python后端开发工程师面试
  18. Font Awesome、ionic icon图标库的超详细使用方法
  19. Python字符串切片总结
  20. java开发256g固态硬盘_256g固态硬盘有哪些

热门文章

  1. 【AI视野·今日CV 计算机视觉论文速览 第238期】Fri, 1 Oct 2021
  2. 【AI视野·今日CV 计算机视觉论文速览 第204期】Mon, 24 May 2021
  3. final 最终 演练 java
  4. 常见的运行时异常 java 1615309080
  5. 异常捕获try...catch... c#
  6. jquery-显示隐藏-链式调用
  7. SQL Server查询锁等待
  8. 《Spark The Definitive Guide》Chapter 6:处理不同类型的数据
  9. [svc]rsync简单部署
  10. Kubernetes 1.9集群使用traefik发布服务