题目:
给你单链表的头节点 head
,请你反转链表,并返回反转后的链表。
示例:
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
思路:
链表倒转,简单题,但是一定要搞明白链表这个数据结构
我们新建一个空链表res,然后让结果指向它 最后返回
还需要一个辅助链表cur
复杂度:
时间复杂度:遍历O(n)
空间复杂度:O(1)
代码:
public ListNode reverseList(ListNode head) {
ListNode cur = head;
ListNode pre = null;
while(cur != null){
//还要使用一个temp,保存现在的cur.next
ListNode temp = cur.next;
//将cur指向pre
cur.next = pre;
//pre向前走。要走到最前头
pre = cur;
//往下一个元素遍历
cur = temp;
}
return pre;
}