本文主要是介绍Leetcode#145. Binary Tree Postorder Traversal,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:二叉树的后序遍历,打印出结点值,返回一个数组
解题思路:递归实现如下:
C++版本:
class Solution {
public:vector<int> helper(TreeNode* root, vector<int> &r){if(root){helper(root->left, r);helper(root->right, r);r.push_back(root->val);}return r;}vector<int> postorderTraversal(TreeNode* root) {vector<int> ret;return helper(root, ret);}
};
20180806非递归实现
class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {vector<int> res;stack<TreeNode* > s;if(root == NULL)return res;s.push(root);while(!s.empty()){TreeNode* temp = s.top();s.pop();res.push_back(temp->val);if(temp->left)s.push(temp->left);if(temp->right)s.push(temp->right);}reverse(res.begin(), res.end());return res;}
};
这篇关于Leetcode#145. Binary Tree Postorder Traversal的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!