1. 程式人生 > >leetcode 226. 翻轉二叉樹

leetcode 226. 翻轉二叉樹

style AR struct public code 翻轉 == rtt etc

翻轉一棵二叉樹。

     4
   /     2     7
 / \   / 1   3 6   9

轉換為:

     4
   /     7     2
 / \   / 9   6 3   1


註意點:小心不要把程序寫成下面這樣:
1 root->left = invertTree(root->right);
2 root->right = invert(root->left);

因為第一行的root->left指向的內容已近改變,要用一個變量來保存原來的root->left的值
 1 /**
 2  * Definition for a binary tree node.
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 TreeNode* invertTree(TreeNode* root) { 13 if(root == NULL) return NULL; 14 TreeNode* temp = root->left;
15 root->left = invertTree(root->right); 16 root->right = invertTree(temp); 17 return root; 18 } 19 };

leetcode 226. 翻轉二叉樹