以下是使用JavaScript实现计算二叉树中节点与其祖先之间的最大差值的示例代码:
”`javascript // 定义二叉树节点类 class TreeNode { constructor(val) {
this.val = val;
this.left = null;
this.right = null;
} }
// 计算二叉树节点与其祖先之间的最大差值的函数 function maxAncestorDiff(root) { let maxDiffVal = 0; // 最大差值初始化为0
// 递归函数,用于计算以当前节点为根节点的子树中,当前节点与祖先之间的最大差值,并更新maxDiffVal function dfs(node, minVal, maxVal) {
if (!node) return;
// 更新maxDiffVal
maxDiffVal = Math.max(maxDiffVal, Math.abs(node.val - minVal), Math.abs(node.val - maxVal));
// 更新minVal和maxVal
minVal = Math.min(minVal, node.val);
maxVal = Math.max(maxVal, node.val);
dfs(node.left, minVal, maxVal); // 遍历左子树
dfs(node.right, minVal, maxVal); // 遍历右子树
}
dfs(root, root.val, root.val); // 调用递归函数开始计算
return maxDiffVa
内容由零声教学AI助手提供,问题来源于学员提问




