实现二叉树左右子树交换 求Java代码
时间: 2023-10-30 10:08:12 浏览: 86
下面是实现二叉树左右子树交换的Java代码:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return null;
}
TreeNode temp = root.left;
root.left = invertTree(root.right);
root.right = invertTree(temp);
return root;
}
```
以上代码中,我们定义了一个 `TreeNode` 类来表示二叉树的节点。其中包含 `val` 表示节点的值,`left` 表示左子树,`right` 表示右子树。我们还定义了一个 `invertTree` 函数来实现二叉树左右子树交换的功能。该函数使用递归的方式来交换每个节点的左右子树。具体来说,我们先递归交换右子树,再递归交换左子树,最后交换当前节点的左右子树。最后返回根节点。
需要注意的是,在Java中交换两个变量的值需要使用一个临时变量来存储中间值,因此我们在交换 `root.left` 和 `root.right` 时,需要使用一个 `temp` 变量来存储 `root.left` 的值。
阅读全文