Python 데이터 구조의 회전 링크
샘플:링크 1->2->3->4->5->null 과 k=2 를 드 립 니 다.귀환 4->5->1->2->3->null
먼저,이 문제 가 달성 하고 자 하 는 목적 을 살 펴 보 자.사실은 다른 표현 으로 이렇게 묘사 할 수 있다.k 수 치 를 제시 하고 링크 를 마지막 k 개 노드 에서 시작 한 부분 을 링크 앞으로 이동 시 키 는 것 이다.예 를 들 어 4->5 이 부분 을 전체 링크 앞으로 이동 시 켜 4->5->1->2->3->null 로 바 꾸 는 것 이다.그러나 주의해 야 할 것 은 문제 에서 k 의 크기 를 제시 하지 않 았 다 는 것 이다.k 가 링크 의 길이 보다 더 클 때 우 리 는 먼저 k 로 링크 의 길 이 를 구 해 야 한다.예 를 들 어 k=7 이 라면 위의 예 는 4->5 를 전체 링크 앞으로 이동 해 야 한다.
그 러 니까 이 문제 의 사고방식 은 이렇게 요약 할 수 있다.
1.전체 링크 의 길 이 를 구 합 니 다.
2.k 값 에 따라 이동 해 야 할 부분 링크 의 전구(사례 중 3)를 찾 습 니 다.
3.앞 구 리 를 끊 고 뒤쪽 으로 이동
코드 는 다음 과 같 습 니 다:
# Definition for singly-linked list. 
# class ListNode: 
#   def __init__(self, x): 
#     self.val = x 
#     self.next = None 
 
class Solution: 
  # @param head: the list 
  # @param k: rotate to the right k places 
  # @return: the list after rotation 
  def rotateRight(self, head, k): 
    if head is None: 
      return head 
    cur = head 
    count = 1 
    #        
    while cur.next: 
      cur = cur.next 
      count += 1 
    #       ,            :          
    cur.next = head 
    #   ,k cur                   
    k = count - k % count 
    #      
    while k != 0: 
      cur = cur.next 
      k -= 1 
    #    
    head = cur.next 
    cur.next = None 
    #         ,                 ,     head 
    return head 
    # write your code here 
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.