以下是使用JavaScript实现二叉树深度n以下节点翻转的示例代码:
// 定义二叉树节点
class TreeNode {
constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}
// 翻转二叉树函数(深度优先搜索)
function invertTree(root, depth) {
if (!root || depth < 0) { // 边界情况,空节点或超出深度直接返回
return;
}
// 当前节点需要翻转,交换左右子节点
const temp = root.left;
root.left = root.right;
root.right = temp;
// 继续递归翻转左右子树
invertTree(root.left, depth - 1);
invertTree(root.right, depth - 1);
}
// 创建一棵二叉树
const 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, 2); // 将深度为2以下的节点进行翻转
console.log("翻转后:", tree.val, tree.left.val, tree.right.val,
tree.left.left.val, tree.left.right.val,
tree.right.left.val, tree.right.right.val);
在这个示例中,我们创建了一棵二叉树,并使用 invertTree() 函数将深度为2以下的节点进行翻转。通过控制台打印结果,可以看到翻转后的二叉树结构。
内容由零声教学AI助手提供,问题来源于学员提问




