反转链表
题目描述
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
提示:
0 <= 节点个数 <= 5000
题目分析
1→2→3→null
初始化时h为1,now为2,h的next设置成null,有:
null ←1(h) 2(now)→3
现在将保存一下now的next,然后now的next改成前面的head,h修改成now,now修改成保存值,有:
null ← 1←2(h) 3(now)
重复上面操作,有:
null ←1←2←3(h) null(now)
当now为null时,返回h即可
class Solution {
fun reverseList(head: ListNode?): ListNode? {
var now = head?.next
var h= head
head?.next = null
while (now != null){
val tmp = now
now = now.next
tmp.next = h
h = tmp
}
return h
}
}