0.若是隻有一個節點,那麼就直接做爲根,塗黑,若是父爲黑,或者祖父爲空,那麼不作操做3d
1.叔叔節點不爲空且爲紅 那麼就修改父,叔叔,祖父節點顏色,最後把當前節點設置爲祖父節點,在進行平衡blog
2.若是父爲右節點,而且叔叔節點爲空或者爲黑,當前節點是右節點,若是父不爲空, 那麼把父設置爲黑,而後若是祖父不爲空,那麼祖父改成紅,並對祖父進行左旋,而後再平衡二叉樹
3.若是父爲右節點,而且叔叔節點爲空或者爲黑,當前節點是左節點, 吧當前節點的父節點進行右旋im
4.若是父爲左節點,而且叔叔節點爲空或者爲黑,當前節點是左節點, 吧當前節點的祖父節點改成紅進行右旋d3
5.若是父爲左節點,而且叔叔節點爲空或者爲黑,當前節點是右節點, 吧當前節點的祖父節點改成紅進行左旋db
畫出來的幾個過程圖img