二叉樹之N叉樹的前序、後序以及層次遍歷(迭代實現)

前言:

  N叉樹的前序、和後序遍歷的迭代實現與二叉樹相似。

 首先根據遍歷的特性,判斷使用stack還是queue。

  N叉樹的後序遍歷,也可由其前序遍歷的結果翻轉後得到,只不過在孩子結點入棧是,是從左到右依次入棧。

 

一、N叉樹的前序遍歷

題源:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/

/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/
class Solution {
public:    
    vector<int> preorder(Node* root) {
        vector<int> res;
        stack<Node*> s;
        if(root==NULL)
            return res;
        s.push(root);
        while(!s.empty()){
            Node* p=s.top();
            s.pop();
            if(p!=NULL){
               res.push_back(p->val);
               for(int i=p->children.size()-1;i&gt
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章