请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

刘老师,我有个问题想不明白?

刘老师,我有个问题想不明白,就是在删除AVL平衡树的时候,维护树的高度也是retNode.height = 1 + Math.max(getHeight(retNode.left), getHeight(retNode.right));那这样不是始终在加吗,比方说一个3层的树,删去最下面的叶子节点,剩下的2层的树不是应该高度都减少了吗,我始终想不明白,请您百忙之中为我释疑问?

正在回答

1回答

因为叶子节点的高度为1,根节点的高度最高;

而不是根节点的高度为1:)


所以,删除了一个节点以后,只需要顺着这个节点往上更新高度值就够了,其他节点的高度值是不会变的:)

2 回复 有任何疑惑可以回复我~
  • 提问者 慕容6289997 #1
    我明白了,刘老师,您的意思是递归的过程是从叶子节点开始逐步向上更新的,我原来以为是从根节点向下逐步更新的,谢谢,我懂了!感谢老师百忙之中为我答疑
    回复 有任何疑惑可以回复我~ 2019-03-13 09:34:37
  • liuyubobobo 回复 提问者 慕容6289997 #2
    应该的,继续加油!:)
    回复 有任何疑惑可以回复我~ 2019-03-13 09:35:55
  • 提问者 慕容6289997 #3
    老师您过谦了,可能我问题会多一点,不过您已经讲得很好了,再次感谢!:)
    回复 有任何疑惑可以回复我~ 2019-03-13 09:50:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信