标签:lis tco ima init UNC nod func etc tmp
题意:反转一个单链表。
示例: 输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
这里我们只需要改变节点Next域的指向即可,实现原地反转。这里我们需要借助一个辅助指针pre初始化指向nil最后最为新的头节点,一个cur指针指向链表的当前头节点head,即双指针大法
。还需要一个临时指针tmp,用于标记cur指针指向的下一个节点。过程如下图,引入了公众号【代码随想录】的动图方便展示:
具体代码如下:
//Definition for singly-linked list.
type ListNode struct {
Val int
Next *ListNode
}
//改变Next指针的指向 双指针法
func reverseList(head *ListNode) *ListNode {
var pre *ListNode = nil
var tmp *ListNode
cur := head
for cur != nil{
tmp = cur.Next
cur.Next = pre
pre = cur
cur = tmp
}
return pre
}
标签:lis tco ima init UNC nod func etc tmp
原文地址:https://www.cnblogs.com/zmk-c/p/14390003.html