老师,左旋转旋转的是子节点,右旋转旋转的是父节点

来源:13-7 红黑树中添加新元素

小蜗牛有大理想

2023-05-09

老师,左旋转旋转主要针对的是子节点,右旋转和颜色翻转主要根据的是父节点。我理解你这个写在递归的方法主要是最里边的两层起到了作用。

    if (isRed(node.right) && !isRed(node.left))
        node = leftRotate(node);

    if (isRed(node.left) && isRed(node.left.left))
        node = rightRotate(node);

    if (isRed(node.left) && isRed(node.right))
        flipColors(node);
写回答

1回答

liuyubobobo

2023-05-10

没有特别理解你说的“最里边的两层”是什么意思。你的这个总结是对的:左旋转旋转主要针对的是子节点,右旋转和颜色翻转主要根据的是父节点。


这三个 if 的逻辑就是这页 ppt 的内容:


//img.mukewang.com/szimg/645aa6c5090c068618921034.jpg


继续加油!:)

0
1
小蜗牛有大理想
感谢老师
2023-05-10
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程