[Leetcode] 19. 刪除連結串列的倒數第N個節點 java
阿新 • • 發佈:2018-12-14
(連結串列新手,程式碼是別人的)
給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。
示例:
給定一個連結串列: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.
說明:
給定的 n 保證是有效的。
進階:
你能嘗試使用一趟掃描實現嗎?
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode p=head; ListNode q=head; for(int i=0;i<n;i++){//q先走n次 p=p.next; } if(p==null){ return head.next; } while(p.next!=null){//p q一起走 p=p.next; q=q.next; } q.next=q.next.next; return head; } }