Tree 斜二叉树

Tree 斜二叉树,tree,binary-tree,skew,Tree,Binary Tree,Skew,1) 不平衡二叉树是什么意思?我们如何编写算法来测试它 2) 我有一个问题,需要编写一个函数来测试二叉树的深度。我认为这会起作用,但不确定……: function getDepth(Node n){ if(node == null){ return 0; } return 1 + Math.max(getDepth(node.left), getDepth(node.right)); } getDepth(root); 有谁能给我指点一下吗?1)倾斜二叉

1) 不平衡二叉树是什么意思?我们如何编写算法来测试它

2) 我有一个问题,需要编写一个函数来测试二叉树的深度。我认为这会起作用,但不确定……:

function getDepth(Node n){
    if(node == null){
        return 0;
    }
    return 1 + Math.max(getDepth(node.left), getDepth(node.right));
}
getDepth(root);
有谁能给我指点一下吗?

1)倾斜二叉树并不是一个100%广泛使用的通用术语(甚至谷歌也会感到困惑)。搜索你的课堂讲稿或书,看看它们的意思

  • 要测试一棵树的级别与节点数一样多,您可以使用已有的计算级别的函数和另一个计算节点数的函数

    但是,如果if发现节点数不能与级别数相同,则应该创建另一个更高效的算法,该算法将提前终止

  • 深度函数是正确的。毕竟,这不是直接从树深度的定义中得出的吗

    (唯一可能的挑剔是深度(null)=1。只需确保不需要深度(null)=0即可)


  • 歪斜二叉树是指只有一种类型的子树的树。如果一棵树只有左子树,那么它就是左偏树,反之亦然。

    似乎术语“斜二叉树”实际上是两个不同概念的组合。请重新表述您要查找的内容。对于非平衡性,仍然有许多定义-例如,请查找关于AVL树和红黑树的wikipedia文章。倾斜二叉树是指树尽可能深的位置-即它有尽可能多的节点和级别(假设基本级别=1)