ノード最後から二番目のkのリンクリスト:オファー8を受賞

ターン: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; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/JimShi/p/11401219.html