Python 데이터 구조의 반전 링크

체인 시 계 를 뒤집다
샘플:링크 1->2->3->null 을 드 립 니 다.이 뒤 집 힌 링크 는 3->2->1->null 입 니 다.
비교적 간단 한 방법 은 적출 법 을 사용 하 는 것 이다.먼저 빈 노드 를 새로 만 든 다음 에 전체 링크 를 옮 겨 다 니 며 옮 겨 다 니 는 노드 로 하여 금 새 링크 의 머리 노드 를 가리 키 게 하 는 것 이다.
그런 예 로 말 하면 절 차 는 이렇다.
1.새 빈 노드:없 음
2. 1->None
3. 2->1->None
4. 3->2->1->None
코드 는 매우 간단 합 니 다.

""" 
Definition of ListNode 
 
class ListNode(object): 
 
 def __init__(self, val, next=None): 
  self.val = val 
  self.next = next 
""" 
class Solution: 
 """ 
 @param head: The first node of the linked list. 
 @return: You should return the head of the reversed linked list. 
     Reverse it in-place. 
 """ 
 def reverse(self, head): 
  temp = None 
  while head: 
   cur = head.next 
   head.next = temp 
   temp = head 
   head = cur 
  return temp 
  # write your code here 
물론 조금 어 려 운 해법 도 있다.우 리 는 링크 의 노드 에 대해 체인 과 링크 를 순서대로 떼 는 방법 으로 제자리 에서 뒤 집 히 는 코드 를 쓸 수 있다.

""" 
Definition of ListNode 
 
class ListNode(object): 
 
 def __init__(self, val, next=None): 
  self.val = val 
  self.next = next 
""" 
class Solution: 
 """ 
 @param head: The first node of the linked list. 
 @return: You should return the head of the reversed linked list. 
     Reverse it in-place. 
 """ 
 def reverse(self, head): 
  if head is None: 
   return head 
  dummy = ListNode(-1) 
  dummy.next = head 
  pre, cur = head, head.next 
  while cur: 
   temp = cur 
   #           
   pre.next = cur.next 
   cur = pre.next 
   temp.next = dummy.next 
   dummy.next = temp 
  return dummy.next 
  # write your code here 
주의해 야 할 것 은 체인 을 풀 때 떼 어 낸 곳 을 다시 연결 하 는 것 을 잊 지 말 아야 한 다 는 것 이다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기