1. 程式人生 > >LintCode 68. 二叉樹的後序遍歷

LintCode 68. 二叉樹的後序遍歷

efi values arraylist problem public cor bin push_back com

題目:給出一棵二叉樹,返回其節點值的後序遍歷。

樣例

給出一棵二叉樹 {1,#,2,3},

   1
         2
    /
   3

返回 [3,2,1]

挑戰

你能使用非遞歸實現麽?

解:遞歸解,非遞歸以後補充

/**
 * Definition of TreeNode:
 * class TreeNode {
 * public:
 *     int val;
 *     TreeNode *left, *right;
 *     TreeNode(int val) {
 *         this->val = val;
 *         this->left = this->right = NULL;
 *     }
 * }
 
*/ class Solution { public: /* * @param root: A Tree * @return: Postorder in ArrayList which contains node values. */ vector<int> postorderTraversal(TreeNode * root) { // write your code here vector<int> re; if(root!=NULL) { postorder(root,re); }
return re; } void postorder(TreeNode* node,vector<int> &re) { if(node==NULL) return; if(node->left!=NULL) postorder(node->left,re); if(node->right!=NULL) postorder(node->right,re); re.push_back(node
->val); } };

LintCode 68. 二叉樹的後序遍歷