문제 --237에 leetcode 솔루션은 노드의 목록을 삭제

지정된 노드가 제거 될 것이 가능 (비 엔드) 노드 주어진 목록을 삭제 할 수 있습니다 함수를 작성하십시오, 당신은 단지 필요합니다.

기존의 목록 - 헤드 [4,5,1,9], 이는 다음과 같이 표현 될 수 =

spacer.gif

예 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








추천

출처blog.51cto.com/12876518/2407070