Go 언어에서 연결된 목록 노드를 삭제하는 방법: 먼저 다음 노드의 값을 현재 삭제된 노드로 이동한 다음 [node.Next = node.Next.Next]와 같이 현재 노드의 Next를 변경합니다.
이 기사의 운영 환경: windows10 시스템, GO 1.11.2, thinkpad t480 컴퓨터.
특정 방법:
최적의 해결 방법:
다음 노드의 값을 현재 삭제된 노드로 이동한 후 현재 노드의 Next를 변경합니다
node.Val = node.Next.Val node.Next = node.Next.Next
기타 방법:
p.next = p.next. next 삭제 목적을 달성하려면
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(head *ListNode, val int) *ListNode { if head.Val == val{ return head.Next } pre:=head for head.Next.Val != val{ head = head.Next } head.Next = head.Next.Next return pre }
제목:
연결 리스트에서 노드 삭제
연결 리스트에서 주어진(끝이 아닌) 노드를 삭제할 수 있는 함수를 작성해 주세요. 삭제해야 합니다.
기존 연결 목록이 있습니다. head = [4,5,1,9], 다음과 같이 표현할 수 있습니다.
예 1:
입력: head = [4,5,1,9] , node = 5
출력: [4,1,9]
설명: 연결된 목록에 값이 5인 두 번째 노드가 있는 경우 함수를 호출한 후 연결된 목록은 4 -> 1 ->
예 2:
입력: 헤드 = [4,5,1,9], 노드 = 1
출력: [4,5,9]
설명: 연결 목록에서 값이 1인 세 번째 노드가 주어지면 그 이후 함수를 호출하면 연결된 목록은 4 -> 5 -> 9가 되어야 합니다.
Code
삭제 목적을 달성하려면 여전히 주의하세요
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(node *ListNode) { for node.Next.Next != nil { node.Val = node.Next.Val node = node.Next } node.Val = node.Next.Val node.Next = nil }
관련 권장 사항: golang 튜토리얼
위 내용은 Go 언어에서 연결된 목록 노드를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!