劍指offer18 --- 反轉鏈表

劍指offer18 — 反轉鏈表

題目

輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。

分析

  1. 將現有的頭換成尾,尾部的next爲空
  2. 從第二個node開始,循環將next指向前一個
  3. 需要有一個指針一直指向還沒有反轉的鏈表的頭部

題目

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        # write code here
        if pHead == None:
            return None
        if pHead.next == None:
            return pHead
        
        leftPointer=pHead
        midPointer=pHead.next
        rightPointer=midPointer.next
        leftPointer.next=None
        
        while rightPointer !=None:
            midPointer.next=leftPointer
            leftPointer=midPointer
            midPointer=rightPointer
            rightPointer=rightPointer.next
            
        midPointer.next=leftPointer
        return midPointer

牛客網該題鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章