采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
整个过程直接看能看懂,关键是当前的node这个表述不太懂。
按视频中的逻辑链条,当前的node一开始是红节点,左旋转后就变成了那个黑节点,
可是左旋转函数返回的结果并不是黑色节点呀。
那为什么可以这么编程呢?
抱歉,我们觉得我没有理解你的问题。
具体你是问程序中的哪句话“为什么可以这么编程”?你认为正确的编程方式怎样?
P.S. 左旋转后当前的 node 依旧是红色:
抱歉没有阐述清楚。我的意思是就是第一个左旋转针对的node应该是一开始那个三节点的红色节点吧,且leftRotate函数的返回值就是一条直线上的图的中间红色节点。而接下来进行右旋转操作的参数是黑节点吧。那我理解需要把node从红色节点变成黑色节点的一步操作呀。可是编程里面没有这步操作。(希望我阐述清楚了)
我觉得我理解了。你说得对!是黑色节点。这一步其实是在当前的函数结束以后,转到上一层递归中,再上一层处理。上一层就是黑色节点了。可以参考这里我的回答:https://coding.imooc.com/learn/questiondetail/181742.html 加油!:)
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
11.1k 16
1.8k 17
1.6k 14
1.7k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号