Skip to content

Commit 750720e

Browse files
committed
feat: 리밸런싱에 필요한 도구 LL 회전, RR 회전 메서드 작성
1 parent 93209d0 commit 750720e

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

yoonexample/src/main/java/search/binarysearchtree/AVLTreeNode.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,28 @@ private int getEquilibriumFactor(BinaryTreeNode<E> binaryTreeNode) {
2929

3030
return leftHeight - rightHeight;
3131
}
32+
33+
private BinaryTreeNode<E> rotateLL(BinaryTreeNode<E> binaryTreeNode) {
34+
// LL 회전을 위한 준비
35+
BinaryTreeNode<E> parentNode = binaryTreeNode;
36+
BinaryTreeNode<E> childNode = parentNode.getLeftSubTree();
37+
38+
// LL 회전
39+
parentNode.changeLeftSubTree(childNode.getRightSubTree());
40+
childNode.changeRightSubTree(parentNode);
41+
42+
return childNode; // 변경된 루트 노드 반환
43+
}
44+
45+
private BinaryTreeNode<E> rotateRR(BinaryTreeNode<E> binaryTreeNode) {
46+
// RR 회전을 위한 준비
47+
BinaryTreeNode<E> parentNode = binaryTreeNode;
48+
BinaryTreeNode<E> childNode = parentNode.getRightSubTree();
49+
50+
// RR 회전
51+
parentNode.changeRightSubTree(childNode.getLeftSubTree());
52+
childNode.changeLeftSubTree(parentNode);
53+
54+
return childNode; // 변경된 루트 노드 반환
55+
}
3256
}

0 commit comments

Comments
 (0)