hello,进来的小伙伴们,你们好耶!
系列专栏:【牛客刷题】
作者简介:一名大三在读的科班Java编程小白,学会沉淀,冲击大牛!
本篇内容:在线OJ题——反转一个单链表
给大家推荐一个超级好用的刷题网站——牛客网!
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
数据范围: 0\leq n\leq10000≤n≤1000
要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。
如当输入链表{1,2,3}时,
经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
输入:
{1,2,3}
返回值:
{3,2,1}
输入:
{}
返回值:
{}
说明:
空链表则输出空
- public class Solution {
- public ListNode ReverseList(ListNode head) {
- if(head == null){//没有一个节点的情况
- return null;
- }
- if(head.next == null){//只有一个节点的情况
- return head;
- }
-
- ListNode cur = head.next;
- head.next = null;
- while (cur!=null){
- ListNode curNext = cur.next;
- cur.next = head;
- head =cur;
- cur = curNext;
- }
- return head;
- }
- }
运行结果: