LeetCode題目--反轉連結串列(python實現)
阿新 • • 發佈:2018-11-11
題目
反轉一個單鏈表。
示例:
輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL
進階:
你可以迭代或遞迴地反轉連結串列。你能否用兩種方法解決這道題?
python程式碼實現L:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ if not head or not head.next: return head last = None while head: t = head.next head.next = last last = head head = t return last
方法二:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def reverseList(self, head): """ :type head: ListNode :rtype: ListNode """ if head is None: return if head.next is None: p = head else: t=Solution() p = t.reverseList(head.next) head.next.next = head head.next = None return p