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;
        }
    
    }
  • 相关阅读:
    遗传算法
    UVa 11584 Partitioning by Palindromes
    UVa1625 Color Length
    UVa10003 Cutting Sticks
    UVa1347 Tour
    UVa116 (单向TSP,多决策问题)
    uVa 12563 Jin Ge Jin Qu
    模糊综合评判
    Python进阶(5)_进程与线程之协程、I/O模型
    Python进阶(4)_进程与线程 (python并发编程之多进程)
  • 原文地址:https://www.cnblogs.com/zhuangzebo/p/3991521.html
Copyright © 2011-2022 走看看