zoukankan      html  css  js  c++  java
  • leetcode

    Given a binary tree, return the postorder traversal of its nodes' values.

    For example:
    Given binary tree {1,#,2,3},

       1
        
         2
        /
       3
    

    return [3,2,1].

     思路:后序遍历是按照“左子树,右子树,根”的顺序访问元素。那么根或者其它父亲元素就要先压入栈,然后再弹出。

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <stack>
    
    using namespace std;
    
    struct TreeNode {
        int val;
        TreeNode *left;
        TreeNode *right;
        TreeNode(int x): val(x), left(NULL), right(NULL){}
    }; 
    
    class Solution {
    public:
        vector<int> postorderTraversal(TreeNode *root) {
            vector<int> res;
            stack<TreeNode *> s;    
            if (!root) {
                return res;
            }
            s.push(root);
            while (!s.empty()) {
                TreeNode *p = s.top(); s.pop();    
                res.push_back(p->val);
    
                if (p->right) {
                    s.push(p->right);
                }
    
                if (p->left) {
                    s.push(p->left);
                }
            }
            reverse(res.begin(), res.end());
            return res;
        }
    };
    
    int main(int argc, char *argv[]) {
        TreeNode *p = new TreeNode(9);    
        p->right = new TreeNode(1);    
        p->left = new TreeNode(1);    
    
        Solution *solution = new Solution();
    
        vector<int> res;    
        res = solution->postorderTraversal(p);
    
        vector<int>::iterator it;
        for (it = res.begin(); it != res.end(); it++) {
            cout << *it << endl;
        }
    
    }
  • 相关阅读:
    [恢]hdu 1517
    [恢]hdu 1847
    [恢]hdu 2189
    XHTML学习资料(二)
    基于ASP.NET的lucene.net全文搜索(一)
    XHTML学习资料(三)—— 表格
    ASP.NET中的Menu控件的应用
    基于ASP.NET的lucene.net全文搜索(二)
    EasyFas开源t框架说明
    动态解析XML生成EXCEL
  • 原文地址:https://www.cnblogs.com/zhuangzebo/p/3991521.html
Copyright © 2011-2022 走看看