翻轉(zhuǎn)一棵二叉樹。
示例
輸入:
4 / \ 2 7 / \ / \ 1 3 6 9
輸出:
4 / \ 7 2 / \ / \ 9 6 3 1
題目說是翻轉(zhuǎn)二叉樹,其實就是簡單的翻轉(zhuǎn)的先序遍歷,即先訪問根結(jié)點,再訪問右子樹,最后訪問左子樹。
class Solution {
public:
TreeNode* postOrderTraverse(TreeNode* root){
TreeNode* t = NULL;
if(root != NULL){
t = new TreeNode(root->val);
t->left = postOrderTraverse(root->right);
t->right = postOrderTraverse(root->left);
}
return t;
}
TreeNode* invertTree(TreeNode* root) {
return postOrderTraverse(root);
}
};