码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode:Binary Tree Postorder Traversal

时间:2014-11-10 13:53:20      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:algorithm   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].


思路:以中右左的顺序完成对树的遍历,然后再将结果反转。


代码:

vector<int> Solution::postorderTraversal(TreeNode *root)
{
    vector<int> postorderSequence;
    stack<TreeNode*> treeNodeStack;
    TreeNode * node = root;
    if(node == NULL)
        return postorderSequence;
    postorderSequence.push_back(node->val);
    if(node->left)
        treeNodeStack.push(node->left);
    if(node->right)
        treeNodeStack.push(node->right);
    while(!treeNodeStack.empty())
    {
        node = treeNodeStack.top();
        treeNodeStack.pop();
        postorderSequence.push_back(node->val);
        if(node->left)
            treeNodeStack.push(node->left);
        if(node->right)
            treeNodeStack.push(node->right);
    }
    reverse(postorderSequence.begin(),postorderSequence.end());
    return postorderSequence;
}


LeetCode:Binary Tree Postorder Traversal

标签:algorithm   leetcode   

原文地址:http://blog.csdn.net/yao_wust/article/details/40979063

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!