谁能更好地逐行解释这段代码的作用
Who can better explain what this snippet of code does line by line
我试图理解这段代码,但我完全没有理解。关于 math.Max()
如何找到树的高度的解释
/**
* @return {number}
*/
get leftHeight() {
if (!this.left) {
return 0;
}
return this.left.height + 1;
}
/**
* @return {number}
*/
get rightHeight() {
if (!this.right) {
return 0;
}
return this.right.height + 1;
}
/**
* @return {number}
*/
get height() {
return Math.max(this.leftHeight, this.rightHeight);
}
get leftHeight()
和 get rightHeight()
是递归的,因为它们自称。 get leftHeight()
将 return 您可以从给定节点向左走多少次,get rightHeight()
将 return 您可以从给定节点向右走多少次。 get height()
会return取最大的那个,其实不是节点的高度
例如:
这棵树的顶部2
节点的.height
将是连续向左走的最大值:2(2,7,2)和连续向右走的最大值:2(2,5 , 9), returning 2.
要获得此节点的实际高度,您需要 return .height
递归中的每个节点,因此最大高度将在每次递归时 returned .
get leftHeight()
和 get rightHeight()
中的递归分别在 (!this.left)
或 (!this.right)
为真时停止,这只是检查它是否未定义并且节点确实分别没有左节点或右节点。
我试图理解这段代码,但我完全没有理解。关于 math.Max()
如何找到树的高度的解释
/**
* @return {number}
*/
get leftHeight() {
if (!this.left) {
return 0;
}
return this.left.height + 1;
}
/**
* @return {number}
*/
get rightHeight() {
if (!this.right) {
return 0;
}
return this.right.height + 1;
}
/**
* @return {number}
*/
get height() {
return Math.max(this.leftHeight, this.rightHeight);
}
get leftHeight()
和 get rightHeight()
是递归的,因为它们自称。 get leftHeight()
将 return 您可以从给定节点向左走多少次,get rightHeight()
将 return 您可以从给定节点向右走多少次。 get height()
会return取最大的那个,其实不是节点的高度
例如:
这棵树的顶部2
节点的.height
将是连续向左走的最大值:2(2,7,2)和连续向右走的最大值:2(2,5 , 9), returning 2.
要获得此节点的实际高度,您需要 return .height
递归中的每个节点,因此最大高度将在每次递归时 returned .
get leftHeight()
和 get rightHeight()
中的递归分别在 (!this.left)
或 (!this.right)
为真时停止,这只是检查它是否未定义并且节点确实分别没有左节点或右节点。