翻转二叉树
1.题目描述
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点
示例:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
2.思路
使用递归的方式,要想翻转整个二叉树的话,要从小往上,使用归并的方式来进行解决。先把叶子节点的进行翻转再一层层的往上进行翻转即可。
3.代码
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;
}
}
public class ReverseTree {
public static TreeNode invertTree(TreeNode root) {
if(root == null){
return null;
}
TreeNode left = invertTree(root.left);
TreeNode right = invertTree(root.right);
root.left = right;
root.right = left;
return root;
}
}