206. 反转链表

  给你单链表的头节点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)。

上一篇:单链表算法


下一篇:【leetcode】7. 整数反转(reverse-integer)(模拟)[简单]