链表 206. 反转链表

206. 反转链表

  • 反转一个单链表。

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

思路:双指针迭代

  1. 申请两个指针pre和cur,将cur指针指向pre,同时将两个指针一起向前移动。
  2. 迭代完成时,cur=None,此时pre即为链表头部。
    在这里插入图片描述

代码实现:

class Solution(object):
	def reverseList(self, head):
		pre = None
		cur = head
		# 遍历链表
		while cur:
			# cur.next, pre, cur = pre, cur, cur.next
			
			# 记录当前节点的下一个节点
			tmp = cur.next
			# 然后将当前节点指向pre
			cur.next = pre
			# pre和cur节点都前进一位
			pre = cur
			cur = tmp
			
		return pre	
发布了29 篇原创文章 · 获赞 2 · 访问量 1770

猜你喜欢

转载自blog.csdn.net/yhhuang17/article/details/104816568