把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几

网易2017实习生招聘笔试题-Java开发工程师
把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几
A 3
B 4
C 5
D 6

具体选项忘记了
个人参考答案:高度为3

基础知识点扩展:

满二叉树:

每一层节点数均达最大值

完全二叉树:

除了最外层,其余层上节点数均达最大值,且最外层节点均集中在左侧

二叉排序树又称二叉查找树,亦称二叉搜索树

左子树上的值均小于或等于根结点的值,右子树上的值均大于或等于根结点的值;左、右子树也分别为二叉排序树;

平衡二叉树二叉查排序/查找树(即上面)的一种

是二叉查排序/查找树(即上面)的一种,又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1

如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。
这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。
但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。

哈弗曼树(最优二叉树)

带权路径长度最短的树

旋转操作

《把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几》
《把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几》
《把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几》

举例

《把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几》

《把4,7,11,10,13,9按顺序插入形成平衡二叉树的高度是几》

题目解析:

依次插入4,7,11,10,13,9

平衡二叉树为二叉搜索/排序树的一种,插入操作需满足左子节点比根节点小,右子节点比根节点大
当然每个节点左右子树的高度之差不能超过1

依次先插入4,7,11; 4为根节点,7比4大,所以7为4的右节点,11为7的右节点:

    4
     \       7
       \         11   

此时不平衡,为“右右”,需单旋转:

    7
   / \   4   11

继续插入10,与11最接近,放在11左节点,13放在10的右节点

    7
   / \   4   11
     /
    10
      \        13

此时不平衡,为“右左”,需双旋转:

    7                      10
   / \                    /  \   4   10        ->       7    13
     /  \               / \     
    11   13            4   11

继续插入9,放在11的左节点

     10
    /  \    7    13
  / \     
 4   11
    /
   9

此时不平衡,为“左右”,需双旋转:

     11
    /  \    7    10
  / \     \  4   9    13

求指出错误,博主也没太搞懂那该死的旋转

    原文作者:平衡二叉树
    原文地址: https://blog.csdn.net/xhyxxx/article/details/67639247
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞