文章收录于LeetCode专栏
LeetCode地址
反转链表I
题目
给你单链表的头节点head,请你反转链表,并返回反转后的链表。
示例 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)。