zoukankan      html  css  js  c++  java
  • N-ary Tree Postorder Traversal N叉树的后序遍历

    迭代

    /*
    // Definition for a Node.
    class Node {
    public:
        int val;
        vector<Node*> children;
    
        Node() {}
    
        Node(int _val) {
            val = _val;
        }
    
        Node(int _val, vector<Node*> _children) {
            val = _val;
            children = _children;
        }
    };
    */
    class Solution {
    public:
        vector<int> postorder(Node* root) {
            vector<int> vec;
            stack<Node*> s;
            unordered_map<Node*,bool> m;
            Node* node=root;
            while(node||!s.empty()) {
                while(node) {
                    s.push(node);
                    m[node]=true;
                    bool flag=false;
                    for(auto& child:node->children) {
                        if(!m.count(child)) {node=child;flag=true;break;}
                    }
                    if(!flag) node=nullptr;
                }
                if(!s.empty()) {
                    node=s.top();
                    bool flag=false;
                    for(auto& child:node->children) {
                        if(!m.count(child)) {node=child;flag=true;break;}
                    }
                    if(!flag) {
                        node=nullptr;
                        vec.push_back(s.top()->val);
                        s.pop();
                    }
                }
            }
            return vec;
        }
    };

     递归

    class Solution {
    public:
        vector<int> postorder(Node* root) {
            vector<int> vec;
            postorder_helper(root,vec);
            return vec;
        }
        void postorder_helper(Node* node,vector<int>& vec) {
            if(!node) return;
            for(auto& child:node->children) {
                postorder_helper(child,vec);
            }
            vec.push_back(node->val);
        }
    };
  • 相关阅读:
    24.redis持久化之AOF
    23.redis持久化之RBD
    22.redis五大类型常用的方法
    21.ssm框架--详细整合教程(Spring+SpringMVC+Mybatis)
    20.Mybatis之逆向工程
    Maven环境静态资源问题
    db.properties配置文件
    logo4j配置文件
    mybatis-config.xml系统核心配置文件
    注解
  • 原文地址:https://www.cnblogs.com/LiuQiujie/p/12502873.html
Copyright © 2011-2022 走看看