ターン:https://blog.csdn.net/yjw123456/article/details/81061541
まず、問題解決のためのアイデア
二つのポインタP1、P2、K *そして、ステップP1、P2は*同時にヌル点p2で下る*手放す最初のノードP2にポイントを開始し、p1は最後から二番目のノードkであります
第二に、コード
/ * パブリッククラスListNode { int型のval; ListNode次= NULL; ListNode(int型のval){ this.val =ヴァル。 } } * / パブリック クラスソリューション{ 公共 ListNode FindKthToTail(ListNodeヘッド、int型K){ 場合(ヘッド== NULL ){ 戻り ヌル。 } ListNode P1 =頭部、P2 = ヘッド。 一方、(!K> 0&P2 = NULL ){ P2 = p2.next。 K - ; } // P2説明ヘッド点k <= 0、P2 == NULL && K> 0 Kは、リストの長さを超える。 IF(==ヘッド|| P2(P2 == NULL && K> 0 )){ 戻り NULL ; } 一方、(!P2 = NULL ){ P1 = p1.next; P2 = p2.next; } 戻りP1; } }