``` //交换两个节点的在结构上的位置 ```
时间: 2024-08-13 09:02:33 浏览: 32
```javascript
function swapNodes(node1, node2) {
// 如果两个节点相同或者其中一个为null,则无需交换
if (node1 === node2 || !node1 || !node2) {
return;
}
// 创建一个临时节点,用于暂存node1的值
let temp = node1.value;
// 更新node1指向node2
node1.value = node2.value;
// 更新node2指向temp(即node1原来的值)
node2.value = temp;
}
// 示例:
let root = {
value: 1,
left: {
value: 2,
left: null,
right: null
},
right: {
value: 3,
left: null,
right: null
}
};
swapNodes(root.left, root.right); // 交换根节点左子树和右子树的位置
console.log(root);
```
这段代码定义了一个名为`swapNodes`的方法,它接受两个节点作为参数。首先检查这两个节点是否相同或其中一个为空;如果不满足条件,则直接返回。接下来创建一个临时变量存储第一个节点的值,然后分别更新两个节点的值,实现它们之间的值交换。最后通过一个示例展示了如何在给定的二叉树中交换两个子节点的位置。