翻转二叉树可以使用递归的方式来实现。具体步骤如下:
1. 如果二叉树为空,则直接返回空。
2. 交换二叉树的左右子树。
3. 递归地对左右子树进行翻转。
下面是Java代码实现:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public 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;
}
}
在上面的代码中,我们首先判断二叉树是否为空,如果为空则直接返回。然后交换当前节点的左右子树,并递归地对左右子树进行翻转。最后返回翻转之后的二叉树根节点。
(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)