题目:
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
思路:
主要需要注意反转过程中不要丢了节点。可以使用两个指针,也可以使用三个指针。
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
您可能感兴趣的文章:python无序链表删除重复项的方法python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】python实现单链表中删除倒数第K个节点的方法Python实现针对给定单链表删除指定节点的方法Python实现链表反转的方法分析【迭代法与递归法】Python单链表原理与实现方法详解基于python实现从尾到头打印链表基于Python和C++实现删除链表的节点