旋轉是二叉樹的基本操作,我們可以對任意一個存在父親節點的子節點進行旋轉,包括如下幾種形式(設被旋轉節點為x,其父親節點為p):
1.左旋
旋轉前,x是p的右兒子。
x的左兒子(若存在)變為p的右兒子,p變為x的左兒子。如下圖
2.右旋
旋轉前,x是p的左兒子。
x的右兒子(若存在)變為p的左兒子,p變為x的右兒子。如下圖
綜上總結:
是左旋還是右旋的判斷,我們可以通過檢查選擇前x是p的左兒子還是右兒子來判斷該次旋轉是左旋還是右旋。
旋轉的方式,也就是把父節點旋轉到旋轉點的子節點,然后把旋轉點多余的子節點給父節點