前言
记录自己刷题思路,时常复习。
一、链表
二、解题思路
1.剑指 Offer 24. 反转链表
题目要求反转链表,输入反转后的链表的头结点
思路:递归
递归终止条件为当前节点head.next == nil;则返回当前节点head
若要反转链表,则需要将当前节点的下一个节点的next指向当前节点;当前节点的next置为空,若不置为空则回溯到第一个节点时就会形成回环
go代码如下:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
tem := reverseList(head.Next)
head.Next.Next = head
head.Next = nil
return tem
}
总结
递归思想需要找到递归终止条件