step by step.
题目:
给你一棵二叉树的根节点
root
,翻转这棵二叉树,并返回其根节点。示例 1:
输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2:
输入:root = [2,1,3] 输出:[2,3,1]示例 3:
输入: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 null;}else swap(root);if(root.left!=null){invertTree(root.left);}if(root.right!=null){invertTree(root.right);}return root;}public TreeNode swap(TreeNode root){if(root.left==null&&root.right==null)return root;if(root.left==null){root.left=root.right;root.right=null;}else if(root.right==null){root.right=root.left;root.left=null;}else{TreeNode p = root.left;root.left=root.right;root.right=p;}return root;}
}