Invert a binary tree.
4 / 2 \ 1 3 6 9
To
4 / 7 \ 9 6 3 1
Thinking of solving problems
Recursive
Implementation code
C++:
// Runtime: 3 ms/** * 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: invertTree(TreeNode* root) { if (root != NULL) { TreeNode *temp = root->left; root->left = root->right; root->right = temp; invertTree(root->left); invertTree(root->right); } return root; }};
Java:
// Runtime: 238 ms/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */publicclass Solution { publicinvertTree(TreeNode root) { ifnull){ TreeNode temp = root.left; root.left = root.right; root.right = temp; invertTree(root.left); invertTree(root.right); } return root; }}
Python:
# runtime:52 MS# Definition for a binary tree node.# class TreeNode:# def __init__ (self, x):# self.val = x# self.left = None# self.right = None class solution: # @param {TreeNode} root # @return {TreeNode} def inverttree(self, root): ifRoot! =None: root.left, root.right = Root.right, Root.left self.inverttree (root.left) self.inverttre E (root.right)returnRoot
[Leetcode] Invert Binary Tree