Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

Leetcode:反转链表

kasauce 2019-09-11 08:58:00 阅读数:400 评论数:0 点赞数:0 收藏数:0

该方法定义了头节点与尾节点两个变量,通过nextTemp记录指针,指针顺序1->2->3,通过迭代第二步修改引用1<-2<-3。

方法一:迭代

 public ListNode reverseList(ListNode head) {
     //尾节点
     ListNode prev = null;
     //头节点
     ListNode curr = head;
     while (curr != null) {
         //记录当前节点的尾节点
         ListNode nextTemp = curr.next;
         //修改当前节点尾节点为null,(1->null,2->1->null,3->2->1->null)
         curr.next = prev;
         //记录下一节点尾节点
         prev = curr;
         //记录下一节点头节点(原节点的尾节点)
         curr = nextTemp;
     }
     return prev;
 }

复杂度分析

  • 时间复杂度:O(n)。 假设 nn 是列表的长度,时间复杂度是 O(n)

  • 空间复杂度:O(1)

版权声明
本文为[kasauce]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/TTTTTZ/p/11504273.html