定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
解题思路:迭代
具体过程如下:
- 申请一个临时空间,存储下一个节点的地址;
- 将当前节点指向虚拟节点;
- 虚拟节点后移;
- 当前节点后移;
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
var prev *ListNode
cur := head
for cur != nil {
next := cur.Next
cur.Next = prev
prev = cur
cur = next
}
return prev
}
来源:力扣(LeetCode) 链接:剑指 Offer 24. 反转链表
网友评论