오늘 배웠습니다 : 단일 연결 목록의 끝에서 K 번째 노드 제거
4281 단어 pythonalgorithmswebdevbeginners
문제 설명
단일 연결 리스트의 헤드와 연결 리스트의 끝에서 제거할 k번째 노드를 나타내는 정수 k를 취하는 함수를 작성하십시오.
샘플 입력
head = 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
k = 4
샘플 결과
# node 6 is removed
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 7 -> 8 -> 9
코드 #1
class LinkedList:
def __init__(self, value):
self.value = value
self.next = None
def remove_kth_node_from_end(head, k):
ptr_1 = head
ptr_2 = head
ctr = 0
# Move ptr_2
while ctr < k:
# Return early if k is longer than list's length
if ctr < k and ptr_2 is None:
return
ptr_2 = ptr_2.next
ctr += 1
# Check if removing the first element on the list
if ptr_2 is None:
head.value = head.next.value
head.next = head.next.next
return head
while ptr_2.next is not None:
ptr_1 = ptr_1.next
ptr_2 = ptr_2.next
# Remove kth node from end
ptr_1.next = ptr_1.next.next
return head
메모
head = 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
k = 4
샘플 결과
# node 6 is removed
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 7 -> 8 -> 9
코드 #1
class LinkedList:
def __init__(self, value):
self.value = value
self.next = None
def remove_kth_node_from_end(head, k):
ptr_1 = head
ptr_2 = head
ctr = 0
# Move ptr_2
while ctr < k:
# Return early if k is longer than list's length
if ctr < k and ptr_2 is None:
return
ptr_2 = ptr_2.next
ctr += 1
# Check if removing the first element on the list
if ptr_2 is None:
head.value = head.next.value
head.next = head.next.next
return head
while ptr_2.next is not None:
ptr_1 = ptr_1.next
ptr_2 = ptr_2.next
# Remove kth node from end
ptr_1.next = ptr_1.next.next
return head
메모
# node 6 is removed
0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 7 -> 8 -> 9
class LinkedList:
def __init__(self, value):
self.value = value
self.next = None
def remove_kth_node_from_end(head, k):
ptr_1 = head
ptr_2 = head
ctr = 0
# Move ptr_2
while ctr < k:
# Return early if k is longer than list's length
if ctr < k and ptr_2 is None:
return
ptr_2 = ptr_2.next
ctr += 1
# Check if removing the first element on the list
if ptr_2 is None:
head.value = head.next.value
head.next = head.next.next
return head
while ptr_2.next is not None:
ptr_1 = ptr_1.next
ptr_2 = ptr_2.next
# Remove kth node from end
ptr_1.next = ptr_1.next.next
return head
메모
크레딧
Chris Leipelt .
Reference
이 문제에 관하여(오늘 배웠습니다 : 단일 연결 목록의 끝에서 K 번째 노드 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anzhari/today-i-learned-remove-kth-node-from-the-end-of-a-single-linked-list-11p9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)