翻转二叉树
2024年8月4日约 239 字小于 1 分钟
翻转二叉树
题意
给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
思路
如何翻转二叉树?其实就是把二叉树上的每个节点的左右子节点都交换一下。
利用给出的函数定义,递归地交换每个节点的左右子树,返回每次的根节点即可。
代码
class Solution {
// 定义:将以 root 为根的这棵二叉树翻转,返回翻转后的二叉树的根节点
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
// 利用函数定义,先翻转左右子树
TreeNode l = invertTree(root.left);
TreeNode r = invertTree(root.right);
// 然后交换左右子节点
root.left = r;
root.right = l;
// 和定义逻辑自恰:以 root 为根的这棵二叉树已经被翻转,返回 root
return root;
}
}