Leetcode:反转链表
Posted tttttz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode:反转链表相关的知识,希望对你有一定的参考价值。
方法一:迭代
该方法定义了头节点与尾节点两个变量,通过nextTemp记录指针,指针顺序1->2->3,通过迭代第二步修改引用1<-2<-3。
1 public ListNode reverseList(ListNode head) 2 //尾节点 3 ListNode prev = null; 4 //头节点 5 ListNode curr = head; 6 while (curr != null) 7 //记录当前节点的尾节点 8 ListNode nextTemp = curr.next; 9 //修改当前节点尾节点为null,(1->null,2->1->null,3->2->1->null) 10 curr.next = prev; 11 //记录下一节点尾节点 12 prev = curr; 13 //记录下一节点头节点(原节点的尾节点) 14 curr = nextTemp; 15 16 return prev; 17
复杂度分析
-
时间复杂度:O(n)。 假设 nn 是列表的长度,时间复杂度是 O(n)。
-
空间复杂度:O(1)。
以上是关于Leetcode:反转链表的主要内容,如果未能解决你的问题,请参考以下文章