0 课程地址
https://coding.imooc.com/lesson/207.html#mid=15184
1 重点关注
1.1 红黑树本节解析草图
1为颜色翻转(4节点(有4个子节点)拆分为3个2节点);
2为右旋转,4节点右旋转,未进行拆分;
他们都是子过程
2 课程内容
3 Coding
3.1 红黑树部分关键代码
/** * 颜色翻转 * @author weidoudou * @date 2023/5/6 6:37 * @param node 请添加参数描述 * @return void **/ private void flipColors(Node node){ node.left.color = BLACK; node.right.color = BLACK; node.color = RED; } // node x // / \ 左旋转 / \ // T1 x ---------> node T3 // / \ / \ // T2 T3 T1 T2 private Node leftRotate(Node node) { Node x = node.right; Node T2 = x.left; // 向左旋转过程 node.right = T2; x.left = node; // 更新color x.color = node.color; node.color = RED; return x; } // node x // / \ 右旋转 / \ // x T2 -------> y node // / \ / \ // y T1 T1 T2 private Node rightRotate(Node node){ Node x = node.left; node.left = x.right; x.right = node; x.color = node.color; node.color = RED; return x; }
诸葛