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 阅读数:433 评论数: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