Leetcode-19:チェーンテーブルの最後からN番目のノードを削除

893 ワード

説明:
チェーンテーブルが与えられ、チェーンテーブルの最後からn番目のノードが削除され、チェーンテーブルのヘッダノードが返される.
例:
チェーンテーブルが与えられる:1->2->3->4->5、およびn=2.最後から2番目のノードを削除すると、チェーンテーブルは1->2->3->5になります.
説明:与えられたn保証は有効である.
ステップアップ:スキャンを使って実装してみてもいいですか?
考え方:
1、チェーンテーブルの長さがnに等しい場合、すなわちテーブルヘッダノードを削除する場合は2つしかありません.2、チェーンテーブルの長さがnより大きい場合、まず2つのテーブルヘッダを定義し、1つの後にnビットを移動し、2つのチェーンテーブルが同時に後に移動すると、後ろのノードが末尾に達すると、前のノードが削除されたノードの前のノードになる.
/**
 * 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 front = head;
        ListNode behind = head;
        
        for(int i=0;i