ALGORITHM

확실히 알고가야 하는 자료구조, 알고리즘 (4) : Linked List 중간 노드 삭제하기

유순이 2021. 3. 27. 13:47

삭제해야 하는 노드의 다음 노드의 데이터를 복사하여 삭제해야 하는 노드에 덮어 씌웁니다.

 

그리고 중복되는 노드를 삭제합니다.

 

public class Test {
	public static void main (String[] args){
    	LinkedList ll = new LinkedList();
        ll.append(1);
        ll.append(2);
        ll.append(3);
        ll.append(4);
        ll.retrieve();
        
        deleteNode(ll.get(2));
        ll.retrieve();
    }
    
    private static boolean deleteNode(Node n){
    	if(n == null || n.next == null){ //이 로직은 처음과 마지막 노드는 삭제할 수 없습니다.
        	return false;
        }
        Node next = n.next;
        n.data = next.data;
        n.next = next.next;
        return true;
    }
}