[LeetCode]Binary Tree Postorder Traversal

原题链接:http://oj.leetcode.com/problems/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?

题解:

  二叉树的后序遍历,我用的是递归,比较简洁。关于二叉树的基础,我之前有一个总结:http://www.cnblogs.com/codershell/p/3291601.html

 1 /**

 2  * Definition for binary tree

 3  * struct TreeNode {

 4  *     int val;

 5  *     TreeNode *left;

 6  *     TreeNode *right;

 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}

 8  * };

 9  */

10 class Solution {

11 public:

12     void traversal(vector<int> &v,TreeNode* root){

13         if(root == NULL)

14             return;

15         

16         traversal(v,root->left);

17         traversal(v,root->right);

18         v.push_back(root->val);

19     }

20     vector<int> postorderTraversal(TreeNode *root) {

21         vector<int> v;

22         traversal(v,root);

23         return v;

24     }

25 };
View Code

 

你可能感兴趣的:(LeetCode)