電源ボタン22の説明の顔の質問にリンクされたリストのノードkの最後から二番目のビス100%

ファストトラック:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

トピック:

入力されたリンクリスト、リンクリストの出力最後から二番目のノードk。ほとんどの人々の習慣を満たすために、この質問は、ノードのリストの最後にある最後から二番目のノードであること、1からカウント。例えば、リンクされたリストは、6つのノードを有し、ノードがゼロからスタート、その値が順次1,2,3,4,5,6です。ノードのリストは、第3のノード4の逆数です。

 

例:

リストが与えられる:1-> 2-> 3-> 4-> 5、及びk = 2。

結果のリストの4-> 5。

分析:要求の対象は、最初のk個のノードへのポインタを見つけることです。私たちは、TMPのポインタを構築し、彼はk回行かせ、その後、tmpが空になったときに、先頭ポインタが、所望されるヘッドポインタtmpのポインタが同時に行くことをさせることができます

Oの時間複雑度(N)Oの空間複雑度(1)

/ * * 
 *単独リンクリストのための定義。
 *構造体ListNode { 
 * INTヴァル。
 * ListNode *次の; 
 * ListNode(INT X):ヴァル(x)は、次の(NULL){} 
 *}。
 * / 
クラスソリューション{
 パブリック
    ListNode * getKthFromEnd(ListNode *ヘッド、INT K){
         int型の予備= 0、最後= 0 
        ListNode * TMP = 新しいListNode(); 
        TMP = ヘッド。
        一方、(PRE =!K){ 
            TMP = tmp-> 次。 
            事前 ++ ; 
        } 
        一方(TMP =!NULL){ 
            TMP = tmp-> 次。
            ヘッド =頭部> 次。
        } 
        戻りヘッド。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/ken-liu/p/12545430.html