Java 二叉树交换的详细思路
时间: 2024-01-23 07:16:16 浏览: 26
好的,下面是 Java 实现二叉树左右子树交换的详细思路:
1. 首先定义二叉树节点的数据结构 `TreeNode`,包括 `val` 值、左子树和右子树。代码如下:
```
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
```
2. 定义一个方法 `invertTree`,该方法接收一个二叉树的根节点,并返回交换后的二叉树的根节点。代码如下:
```
public TreeNode invertTree(TreeNode root) {
// 如果根节点为空,直接返回 null
if (root == null) {
return null;
}
// 交换左右子树
TreeNode left = root.left;
root.left = invertTree(root.right);
root.right = invertTree(left);
// 返回交换后的根节点
return root;
}
```
3. 在 `invertTree` 方法中,首先判断当前节点是否为空,若为空则返回 null。否则,交换左右子树,然后递归交换左右子树的左右子树。
4. 递归交换左右子树的左右子树时,也要先判断当前节点是否为空,若为空则直接返回 null。
5. 最后返回交换后的根节点即可。
以上就是 Java 实现二叉树左右子树交换的详细思路。