問題:反轉二元樹
這題目就很簡單,沒什麼困難的
就是用一個遞迴從root一路做到最底部就是了
放在Easy剛好(會這麼說是有很多medium等級的題目還是很Easy)
Java
Java
public class Solution {
public TreeNode invertTree(TreeNode root) {
if(root!=null){
swap(root);
}
return root;
}
public void swap(TreeNode node){
TreeNode temp = node.right;
node.right = node.left;
node.left=temp;
if(node.left!=null)
swap(node.left);
if(node.right!=null)
swap(node.right);
}
}
C++
-
class Solution {
-
public:
-
TreeNode* invertTree(TreeNode* root) {
-
-
if(!root)
-
return NULL;
-
-
if(root!=NULL&&(root->left!=NULL||root->right!=NULL)){
-
TreeNode* temp;
-
temp=root->left;
-
root->left=root->right;
-
root->right=temp;
-
-
invertTree(root->left);
-
invertTree(root->right);
-
}
-
-
return root;
-
-
}
-
-
-
-
-
};
這種轉樹的題目很基本可以從這種題目慢慢體會遞迴的感覺
在很多地方都會用到
0 意見:
張貼留言