Doing something you intrinsically are enthusiastic with.

2016年2月21日 星期日

Leetcode-Invert Binary Tree in Java

晚上11:37 Posted by Unknown No comments

問題:反轉二元樹


這題目就很簡單,沒什麼困難的

就是用一個遞迴從root一路做到最底部就是了

放在Easy剛好(會這麼說是有很多medium等級的題目還是很Easy)

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++

  1. class Solution {
  2. public:
  3.     TreeNode* invertTree(TreeNode* root) {
  4.        
  5.        if(!root)
  6.         return NULL;
  7.        
  8.        if(root!=NULL&&(root->left!=NULL||root->right!=NULL)){    
  9.            TreeNode* temp;
  10.            temp=root->left;
  11.            root->left=root->right;
  12.            root->right=temp;
  13.            
  14.            invertTree(root->left);
  15.            invertTree(root->right);
  16.        }
  17.        
  18.        return root;
  19.        
  20.     }
  21.    
  22.    
  23.    
  24.    
  25. };


這種轉樹的題目很基本

 可以從這種題目慢慢體會遞迴的感覺

 在很多地方都會用到

0 意見:

張貼留言