지정된 노드가 제거 될 것이 가능 (비 엔드) 노드 주어진 목록을 삭제 할 수 있습니다 함수를 작성하십시오, 당신은 단지 필요합니다.
기존의 목록 - 헤드 [4,5,1,9], 이는 다음과 같이 표현 될 수 =
예 1 :
입력 : 헤드 = [4,5,1,9] = 5 노드
출력 : [4,1,9]
설명 : 값이 다음 함수 호출 목록의 피로 사 후 두 번째 노드 5, 주어진 목록 -> 1 -> 9.
예 2 :
입력 : 헤드 = [4,5,1,9], 노드 = 1
출력 : [4,5,9]
설명 : 당신이 값이 1 인 3 노드 목록, 다음 함수 호출 목록의 피로 4 주어진 후 -> 5 -> 9.
문제 해결 아이디어 :
제목의 말하기 만, 따라서 필요가 전체 노드를 통과 고려하지 제거 할 수 요청 노드에 부여하는 노드는 현재를 삭제해야
C ++
/ ** * 단독으로 링크 된 목록에 대한 정의. * 구조체 {ListNode * INT의 발; * ListNode * 다음; * ListNode (INT의 X) 발 (x)는, 다음 (NULL) {} *}; * / 급 솔루션 { 공개 : 공극 deleteNode (ListNode * 노드) { 노드 -> 브로 = 노드 ->하는 next-> 발; ListNode * toDel = 노드 -> 다음; 노드 -> 다음 = toDel-> 다음; toDel을 삭제; toDel = NULL; } };
파이썬
단독으로 링크 된 목록 # 정의. # 클래스 ListNode : # 데프 __init __ (자기, 배) : #의 self.val = X # self.next = 없음 클래스 솔루션 : 데프 deleteNode (자기 노드) : "" " : 유형 노드 : ListNode : RTYPE : 무효은하지 마십시오 , 아무것도 반환하는 대신 현재 위치에서 노드를 수정합니다. "" " node.val = node.next.val node.next = node.next.next