206. 反轉鏈表
func reverseList(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
p := reverseList(head.Next)
head.Next.Next = head
head.Next = nil
return p
}
循環鏈表的反轉
func reverse(head, key *ListNode) *ListNode {
if head.Next == key {
return head
}
p := reverse(head.Next, key)
head.Next.Next = head
head.Next = p
return p
}
循環鏈表的打印
func (l *ListNode) String() string {
head := l
var res string
for {
res += strconv.Itoa(l.Val)
res += "->"
l = l.Next
if l == head {
break
}
}
fmt.Println("循環鏈表循環結束")
return res
}