“Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。”
今天写了二叉树的中序遍历,所以打算把热题100中关于二叉树的题,都解一遍,方便大家专项学习
一、题目描述
-
给你一棵二叉树的根节点
root,翻转这棵二叉树,并返回其根节点。
二、思路分析
-
这道题还是运用递归
-
首先判断根节点是否为null,如果为null直接返回
-
定义一个容器,将左右子树进行交换
-
递归调用,重复进行交换,直到边界条件,在返回
三、AC 代码:
class Solution {
public TreeNode invertTree(TreeNode root) {
/**
根节点为空,直接返回
*/
if(root == null){
return null;
}
/**
定义一个节点容器,用于交换
*/
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
/**
对左右节点进行递归
*/
invertTree(root.left);
invertTree(root.right);
return root;
}
}
四、总结:
- 好了,代码撸完,我们
总结一下:-
首先先判断这个树是否为null,null就直接返回,也是我们的递归终止条件
-
定义一个节点容器,用于交换,进行左右子树的交换
-
交换之后,递归将左右子树进行上述的交换
-
最终返回根节点即可
-