给你单链表的头节点
head
,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2] 输出:[2,1]
示例 3:
输入:head = [] 输出:[]
思路分析:
反转链表,只需要改变链表指针指向即可。
设立两个指针p = null,q = head。
当q不为空时,设置一个临时指针temp记录q.next,调整q的指向使q.next = p,最后p,q前移一位。
重复操作,实现了链表的反转。
代码实现:
public ListNode reverseList(ListNode head) {
ListNode p = null,q = head;
while (q != null){
ListNode temp = q.next;
q.next = p;
p = q;
q = temp;
}
return p;
}
提交结果:
28 / 28 个通过测试用例
状态:通过
执行用时: 0 ms
内存消耗: 41.5 MB
提交时间:10 分钟前