zoukankan      html  css  js  c++  java
  • Leetcode Binary Tree Postorder Traversal

    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].

    Note: Recursive solution is trivial, could you do it iteratively?

    vector<int> postorderTraversal(TreeNode *root){
        vector<int> res;
        if(root == NULL) return res;
        stack<TreeNode *> record;
        record.push(root);
        TreeNode *pre = NULL;
        while(!record.empty()){
            TreeNode *node = record.top();
            if((node->left == NULL  && node->right == NULL)||(pre!=NULL &&(pre == node->left || pre == node->right)) ){
                res.push_back(node->val);
                record.pop();
                pre = node;
            }else{
                if(node->right) record.push(node->right);
                if(node->left ) record.push(node->left);
            }    
        }
        return res;
    }

     另一种方法:

    通过不断的交换左右孩子,然后压栈,最后弹出,即可得到结果

    时间复杂度为O(h),h为树的高度,空间复杂度为O(n)

    vector<int> postorderTraversa(TreeNode *root){
        vector<int> res;
        if(root == NULL) return res;
        stack<TreeNode *> post_record,reverse_record;
        post_record.push(root);
        while(!post_record.empty()){
            TreeNode *node = post_record.top();
            reverse_record.push(node);
            post_record.pop();
            if(node->left) post_record.push(node->left);
            if(node->right) post_record.push(node->right);
        }
        while(!reverse_record.empty()){
            res.push_back(reverse_record.top()->val);
            reverse_record.pop();
        }
        return res;
    }
  • 相关阅读:
    柯里化函数
    函数部分应用Partial application
    001Spark文件分析测试
    001Spring4.2基本环境搭建
    Rectangle 响应按键
    jQuery打印Html页面自动分页
    jquery实现页面局部刷新
    2014 年10个最佳的PHP图像操作库--留着有用
    20 个势头最猛的开发者工具
    20+个很有用的 jQuery 的 Google 地图插件
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3795531.html
Copyright © 2011-2022 走看看