LeetCode刷题翻转二叉树
题目要求
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
示例 3:
输入:root = []
输出:[]
算法思想
翻转二叉树的问题:本质上是在二叉树遍历问题的基础上,进行变式。我采用递归的方式结合先序遍
历求解问题。
如果是空节点直接返回返回root节点,否则交换左右子树。按照此遍历的思路,依次交换左子树和右子树。
class Solution {
TreeNode res = new TreeNode();
public TreeNode invertTree(TreeNode root) {
if(root==null){
return root;
}
res=root.left;
root.left = root.right;
root.right = res;
invertTree(root.left);
invertTree(root.right);
return root;
}
}