以下是使用JavaScript实现二叉树翻转的代码:
// 定义二叉树节点
class TreeNode {
constructor(value) {
this.val = value;
this.left = null;
this.right = null;
}
}
// 翻转二叉树函数
function invertTree(root) {
if (root === null) return root; // 边界情况,空节点直接返回
// 递归地翻转左右子树
let left = invertTree(root.left);
let right = invertTree(root.right);
// 将左右子树互换
root.left = right;
root.right = left;
return root; // 返回翻转后的根节点
}
使用示例:
// 创建一棵二叉树
let 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("翻转前:", tree);
invertTree(tree);
console.log("翻转后:", tree);
这段代码会输出原始的二叉树和翻转后的结果。注意,这里我们通过递归来遍历每个节点,并通过交换左右子节点来实现反转。
内容由零声教学AI助手提供,问题来源于学员提问




