1. 程式人生 > 程式設計 >基於Python實現2種反轉連結串列方法程式碼例項

基於Python實現2種反轉連結串列方法程式碼例項

題目:

反轉一個單鏈表。

示例:

輸入: 1->2->3->4->5->NULL

輸出: 5->4->3->2->1->NULL

進階:

你可以迭代或遞迴地反轉連結串列。你能否用兩種方法解決這道題?

思路:

主要需要注意反轉過程中不要丟了節點。可以使用兩個指標,也可以使用三個指標。

基於Python實現2種反轉連結串列方法程式碼例項

基於Python實現2種反轉連結串列方法程式碼例項

Python解法一:

class Solution:
  def reverseList(self,head):
    cur,prev = head,None
    while cur:
      temp = cur.next
      cur.next = prev
      prev = cur
      cur = temp
    return prev

Python解法二:

class Solution:
  def reverseList(self,head):
    if head == None or head.next == None:
      return head
    prev = None
    cur = head
    post = head.next

    while post:
      cur.next = prev
      prev = cur
      cur = post
      post = post.next
    cur.next = prev
    return cur

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。