Height of a tree with only one node

后端 未结 6 1367
天涯浪人
天涯浪人 2020-12-14 01:29

According to Wikipedia,

The height of a tree is the length of the path from the root to the deepest node in the tree. A (rooted) tree with only one

相关标签:
6条回答
  • 2020-12-14 02:09

    It just an assuption you make for the recursive description of the height of a binary tree. You can consider a tree composed by just a node either with 0 height or with 1 height.

    If you really want to think about it somehow you can think that

    • it's 0 if you consider the height as a edge count (so that a single node doesn't have any edge, hence 0)
    • it's 1 if you consider the height as a node count (so that a single node counts as 1)

    This is just to describe how much height the smallest tree has, then in any case whenever you add a descending node you will add also a related edge so it will increase accordingly.

    In the example provided in wikipedia:

    alt text

    This tree can have height 4 (nodes) or 3 (edges). It depends if you are counting it by edges or by nodes.

    0 讨论(0)
  • 2020-12-14 02:11

    depends how you want to interpret the height of a tree. in some applications, a tree with one node is interpreted as having height of one and others consider it as having height of zero.

    0 讨论(0)
  • 2020-12-14 02:28

    Assuming you are calculating the height in a recursive manner in the node class I would do this to return the height without including height of the root (java code):

    int height(){
        int leftHeight = 0;
        int rightHeight = 0;
        if(left != null)
            leftHeight =+ left.height() + 1;
        if(right != null)
            rightHeight =+ right.height() + 1;
        return Math.max(leftHeight, rightHeight);
    }
    

    if you want to include the height of the root, then I would do this:

    int height(){
        int leftHeight = 0;
        int rightHeight = 0;
        if(left != null)
            leftHeight =+ left.height();
        if(right != null)
            rightHeight =+ right.height();
        return Math.max(leftHeight, rightHeight) + 1;
    }
    
    0 讨论(0)
  • 2020-12-14 02:29

    Depends on convention. There isn't a "right" answer here. I was taught it's 1. But zero is just as correct.

    0 讨论(0)
  • 2020-12-14 02:31

    I my opinion, Height of one root node should be 0. It makes practical sense as 2^height is also providing you with the number of nodes at that level.

    0 讨论(0)
  • 2020-12-14 02:34

    One advantage of using a node count rather than an edge count is that it distinguishes the empty case (zero nodes, and node level) from the minimal case (one node, and a node level of one). In some cases, an empty tree will not be meaningful, but in other cases an empty try will be perfectly legitimate.

    0 讨论(0)
提交回复
热议问题