• 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;
        }
    };
     
  • 相关阅读:
    float
    老师的通病
    无题
    BufferedReader
    剩余定理
    ActionScript 多图加载 按图顺序索引
    C++ Socket 编程
    设计高可用和高负载的网站系统
    提高网站速度的最佳实践【翻译】
    把哈希表存储到数据库中
  • 原文地址:https://www.cnblogs.com/lychnis/p/11964511.html
Copyright © 2020-2023  润新知