整體思路是讓前面的指標先移動n步,之後前後指標共同移動直到前面的指標到尾部為止。
首先設立預先指標pre,預先指標是一個小技巧,在第2題中進行了講解
設預先指標pre 的下一個節點指向head,設前指標為first,後指標為second,二者都等於pre
first 先向前移動n步
之後first 和second 共同向前移動,此時二者的距離為n,當first 到尾部時,second 的位置恰好為倒數第n 個節點的上一個結點。
class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode first = pre; ListNode second = pre; while (n>0){ first= first.next; n--; } while (first.next != null){ first=first.next; second=second.next; } second.next = second.next.next; return pre.next; } }
以上是Java怎麼刪除鍊錶的倒數第N個節點的詳細內容。更多資訊請關注PHP中文網其他相關文章!