LEETCODE,Reverse Linked List II -- LeetCode

 2023-11-22 阅读 26 评论 0

摘要:原標題鏈接:?http://oj.leetcode.com/problems/reverse-linked-list-ii/?這道題是比較常見的鏈表反轉操作,只是不是反轉整個鏈表。而是從m到n的一部分。分為兩個步驟,第一步是找到m結點所在位置,第二步就是進行反轉直到n結點。反轉的方法就是每讀到一個
原標題鏈接:?http://oj.leetcode.com/problems/reverse-linked-list-ii/?
這道題是比較常見的鏈表反轉操作,只是不是反轉整個鏈表。而是從m到n的一部分。分為兩個步驟,第一步是找到m結點所在位置,第二步就是進行反轉直到n結點。

反轉的方法就是每讀到一個結點。把它插入到m結點前面位置。然后m結點接到讀到結點的下一個。

總共僅僅須要一次掃描,所以時間是O(n),僅僅須要幾個輔助指針,空間是O(1)。

LEETCODE?代碼例如以下:?

public ListNode reverseBetween(ListNode head, int m, int n) {if(head == null)return null;ListNode dummy = new ListNode(0);dummy.next = head;ListNode preNode = dummy;int i=1;while(preNode.next!=null && i<m){preNode = preNode.next;i++;}if(i<m)return head;ListNode mNode = preNode.next;ListNode cur = mNode.next;while(cur!=null && i<n){ListNode next = cur.next;cur.next = preNode.next;preNode.next = cur;mNode.next = next;cur = next;i++;}return dummy.next;
}
上面的代碼還是有些細節的,鏈表的題目就是這抽樣,我認為原因很easy,實施可能會出一些小錯誤,熟能生巧,或哈薩克斯坦。

版權聲明:本文博客原創文章,博客,未經同意,不得轉載。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/184753.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息