给我一段使用js写的反转二叉树算法
时间: 2024-04-15 15:28:23 浏览: 76
当然!以下是使用 JavaScript 编写的反转二叉树(翻转二叉树)的算法示例代码:
```javascript
function TreeNode(val, left, right) {
this.val = val;
this.left = left;
this.right = right;
}
function invertTree(root) {
if (root === null) {
return null;
}
var temp = root.left;
root.left = root.right;
root.right = temp;
invertTree(root.left);
invertTree(root.right);
return root;
}
// 示例用法:
var tree = new TreeNode(4);
tree.left = new TreeNode(2);
tree.right = new TreeNode(7);
tree.left.left = new TreeNode(1);
tree.left.right = new TreeNode(3);
tree.right.left = new TreeNode(6);
tree.right.right = new TreeNode(9);
console.log(invertTree(tree));
```
以上代码定义了一个名为 `TreeNode` 的构造函数,用于创建二叉树的节点。然后,定义了一个名为 `invertTree` 的函数,它接受一个二叉树的根节点作为参数,并返回反转后的二叉树的根节点。
在 `invertTree` 函数中,首先判断根节点是否为空,如果为空则直接返回 null。然后,通过交换根节点的左右子节点,实现对当前节点的翻转。接着,递归调用 `invertTree` 函数对当前节点的左子树和右子树进行翻转。最后,返回翻转后的根节点。
示例用法中创建了一个二叉树,并打印出反转后的二叉树的结构。你可以根据实际需求和二叉树的结构来使用这段代码。
阅读全文
相关推荐













