二叉树交换左右子树 java
时间: 2023-11-01 16:03:07 浏览: 131
【java 数据结构】还不会二叉树?一篇搞定二叉树
在Java中交换二叉树的左右子树可以通过递归来实现。假设我们已经有一个二叉树的节点类TreeNode,其中包含左子节点left和右子节点right。
首先,我们需要定义一个方法来交换节点的左右子树。我们可以通过交换节点的left和right引用来实现。代码如下:
```java
private static void swap(TreeNode root) {
if (root == null) {
return;
}
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
}
```
接下来,我们需要遍历二叉树的所有节点,对每一个节点调用swap方法来交换其左右子树。
```java
public static void invertBinaryTree(TreeNode root) {
if (root == null) {
return;
}
// 交换当前节点的左右子树
swap(root);
// 递归交换左子树的左右子树
invertBinaryTree(root.left);
// 递归交换右子树的左右子树
invertBinaryTree(root.right);
}
```
这样,我们就可以通过调用invertBinaryTree方法来交换二叉树的左右子树了。
实际上,这个方法是一个递归的前序遍历。通过交换节点的左右子树,我们可以实现交换整个二叉树的左右子树。
希望以上解答对你有帮助。
阅读全文