zoukankan      html  css  js  c++  java
  • LeetCode:N叉树的后序遍历【590】

    LeetCode:N叉树的后序遍历【590】

    题目描述

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

    例如,给定一个 3叉树 :

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

    题目分析

      这道题有好几个标签,比如N叉树、递归算法、栈等等。我们使用栈来解决这个问题。

      首先我们都知道,栈顶元素一般都是根元素,弹出根元素,加入根元素的子集后,位于栈顶的是根元素的最右子节点,栈低的是根元素的最左子节点

      如果我们按照这个顺序打印的话,输出的是[1,4,2,3,6,5]。如果我们把这个结果反转后就是[5,6,3,2,4,1]就是结果。

    Java题解

    /*
    // Definition for a Node.
    class Node {
        public int val;
        public List<Node> children;
    
        public Node() {}
    
        public Node(int _val,List<Node> _children) {
            val = _val;
            children = _children;
        }
    };
    */
    class Solution {
       public List<Integer> postorder(Node root) {
            Stack<Node> stack = new Stack<>();
            List<Integer> ans = new ArrayList<>();
            if(root==null)
                return ans;
            stack.push(root);
            while (!stack.isEmpty())
            {
                Node node = stack.pop();
                for(Node tmpNode:node.children)
                    stack.push(tmpNode);
                ans.add(node.val);
            }
            Collections.reverse(ans);
            return ans ;
        }
    }
    

     

  • 相关阅读:
    .NET:CLR via C# A Brief Look at Metadata
    在容器中运行 Jenkins pipeline 任务
    Azure AI 服务之文本翻译
    linux journalctl 命令
    容器化的 DevOps 工作流
    System V IPC 之消息队列
    System V IPC 之信号量
    System V IPC 之共享内存
    减小容器镜像的三板斧
    linux chroot 命令
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9952867.html
Copyright © 2011-2022 走看看