leetcode 206 单链表反转
1 | 输入: 1->2->3->4->5->NULL |
迭代方法
首先设置pre,cur,lat三个指针
接着1
2pre cur lat
null 1 -> 2 -> 3 -> 4 -> 5 -> nullcur.next = pre
1 | pre cur lat |
接着pre = cur,cur = lat,lat = lat.next
重复上述操作直到1
2 pre cur lat
null <-1 2 -> 3 -> 4 -> 5 -> nulllat=None。
1
2 pre cur lat
null <-1 <- 2 <- 3 <- 4 5 -> null
代码
1
2
3
4
5
6def reverseList(self, head: ListNode) -> ListNode:
pre = None
cur = head
while cur != None:
cur.next, pre, cur = pre, cur,cur.next
return pre
递归
1 | def reverseList(self, head): |
leetcode 25 单链表-k组反转
给定这个链表:
1->2->3->4->5当k = 2时,应当返回:2->1->4->3->5当k = 3时,应当返回:3->2->1->4->5