zoukankan      html  css  js  c++  java
  • 590. N-ary Tree Postorder Traversal

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

    Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).

    Follow up:

    Recursive solution is trivial, could you do it iteratively?

    Example 1:

    Input: root = [1,null,3,2,4,null,5,6]
    Output: [5,6,3,2,4,1]
    

    Example 2:

    Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
    Output: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]
    

    Constraints:

    • The height of the n-ary tree is less than or equal to 1000
    • The total number of nodes is between [0, 10^4]
    Accepted
    61,115
    Submissions
    87,988
     
     
    递归版本
    class Solution {
    public:
        vector<int> postorder(Node* root) {
            vector<int> res;
            postorder(root,res);
            return res;
        }
        void postorder(Node *root, vector<int> &res)
        {
            if(NULL==root)return;
            for(Node *n:root->children)
                postorder(n,res);
            res.push_back(root->val);
        }
    };

    循环版本

    root放入数组,然后取出数组末尾元素,把所有子节点插入数组,root值保存到结果中,所以这样得到的结果其实是反的,所以最后要用reverse

    class Solution {
    public:
        vector<int> postorder(Node* root) {
            vector<int> res;
            vector<Node*> node;
            if(root)node.push_back(root);
            while(!node.empty())
            {
                Node *p=node.back();
                node.pop_back();
                for(Node *n:p->children)
                    node.push_back(n);
                res.push_back(p->val);
            }
            reverse(res.begin(),res.end());
            return res;
        }
    };
     
  • 相关阅读:
    IMX6ULL开发板Ubuntu文件系统Ubuntu-base构建
    迅为3399开发板新增目标检测技术-RKSSD-编译程序
    国际化支持、activity生命周期、屏幕翻转的ui适配
    java调用第三方接口(转载)
    android基础控件的使用
    java并发框架--Fork-Join
    java并发框架--Executor
    多线程管理
    死锁问题
    java多线程信息共享
  • 原文地址:https://www.cnblogs.com/lychnis/p/11964511.html
Copyright © 2011-2022 走看看