定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
遍历链表时,修改节点next指向
func reverseList(head *ListNode) *ListNode {
var pre *ListNode = nil
cur := head
for cur != nil {
next := cur.Next
cur.Next = pre
pre = cur
cur = next
}
return pre
}
func reverseList(head *ListNode) *ListNode {
return reverse(head, nil)
}
func reverse(cur, pre *ListNode) *ListNode {
if cur == nil {
return pre
}
ret := reverse(cur.Next, cur)
cur.Next = pre
return ret
}
KGo笔记
全部评论