解法一:(递归)若root==null
,则直接返回root
;否则交换左右指针,并递归交换左右指针。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public TreeNode invertTree(TreeNode root) {if(root==null){return root;}TreeNode temp = root.left;root.left = root.right;root.right = temp;invertTree(root.left);invertTree(root.right);return root;}
}
注意:
- 要判断
root==null
,直接返回root
,以此来应对root=[]
;而不是使用root.left==null && root.right==null
作为结束条件 - 交换完左右指针,记得递归左右指针进行下面指针的交换