기타/What I Learned

[TIL] 자료구조 - Rebalance 메소드

가죽방패 2022. 7. 26. 09:32

※ Rebalance 메소드

- Rebalance 메소드는 어느 쪽에서 균형이 깨졌는지 확인 후 회전을 하여 균형을 유지한다

 

public void rebalance(Node<E> node){
	if(height(node.left) - height(node.right)>1){
    	if(height(node.left.left) > height(node.left.right))
        	node = rightRotate(node);
        else
        	node = leftRighttoRotate(node);
    }
    else{
    	if(height(node.left.left)>height(node.left.right))
        	node = rightLeftRotate(node);
        else
        	node = leftRotate(node);
    }
    
    if(node.parent == null)
    	root = node;
}

// 출처: 자바로 구현하고 배우는 자료구조[부스트코스]