leetcode.19.チェーンテーブルの最後からN番目のノードを削除する(java)
チェーンテーブルが与えられ、チェーンテーブルの最後からn番目のノードが削除され、チェーンテーブルのヘッダノードが返される.
例:
説明:
与えられた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;
// p n
for (int i = 0; i < n; i ++){
p = p.next;
}
if( p == null){
head = head.next;
return head;
}
// p
while(p.next != null){
p = p.next;
q = q.next;
}
q.next = q.next.next;
return head;
}
}