给你单链表的头节点head,请你反转链表,并返回反转后的链表。
示例 1:
graph LR
1-->2
graph LR
2-->1
输入:head = [1,2]
输出:[2,1]
示例 2:
输入:head = []
输出:[]
题解
第一步审题,题意很简单就是将一个链表进行反转。
第二步列出所有解,直接遍历链表然后反转节点就好。
class Solution{
public ListNode reverseList(ListNode head) {
if(head == null){
return null;
}
ListNode listNode = null;
ListNode curr = head;
while(curr != null){
ListNode nextNode = curr.next;
curr.next = listNode;
listNode = curr;
curr = nextNode;
}
return listNode;
}
}
第三步分析时间复杂度和空间复杂度,只有一次遍历所以空间复杂度为O(n),空间复杂度为O(1)。