leetcode solution to a problem --226 flip binary tree

Flip a binary tree. 
Example: 
Input: 
     4 
     / \ 
     27 
      / \ / \ 
     1369 
Output: 
     4 
     / \ 
     72 
      / \ / \ 
     9631


Problem-solving ideas:

    Binary tree problem, generally can be solved by recursively


C++

/**
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     TreeNode *left;
*     TreeNode *right;
*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        TreeNode* node = root;
        TreeNode* tmp = NULL;
        
        if(node) {
            tmp = node->left;
            node->left = node->right;
            node->right = tmp;
            
            invertTree(node->left);
            invertTree(node->right);
        }
        
        return root;
    }
};



Python

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def invertTree(self, root: TreeNode) -> TreeNode:
        node = root
        if node:
            tmp = node.left
            node.left = node.right
            node.right = tmp
            
            self.invertTree(node.left)
            self.invertTree(node.right)
            
        return root



Guess you like

Origin blog.51cto.com/12876518/2416872