2017-12-30 38 views
-1

単一リンクリストの場合、n%k == 0の最後から最初のものを見つけるにはどうすればいいですか?ここでnはリストの要素数です。& kは整数定数ですか? n = 19、k = 3の場合、16番目のノードを返す必要があります。 1回のパスでそれを行うことは可能ですか?最後からリンクリストのモジュラーノードを検索します。可能であれば、1回のパスでそれを行いますか?

+1

'n = 9'と' k = 3'の場合、16番目のノードはありません。 「n」の定義によって合計9個のノードがある。さらに、表現「n%k」はノードに依存しない定数なので、「n%k == 0」というノードが意味するものは明確ではありません。 'n%k'はゼロに等しいか、そうではありません。 –

+0

@Charu Agarwalの質問は明確ではありません。変更してください。私たちはあなたを助けることができるでしょう。 – zenwraight

+0

ねえ!本当に申し訳ない。私は19で1を逃した。それは実際には19.あなたは今すぐ私を助けてくださいできますか? –

答えて

1

最後のn%k == 0は、17番目のノードではなく、16番目のノードであるという意味です。

1-> 2-> 3-> 4-> 5-> 6-> 7-8> 9-10> 11-12> 13-> 14-> 15-> 16-> 17-> 18-> 19

カウントを開始:19は最後から1番目です。したがって、1%3!= 0

18は、最後から2番目の位置にあります。したがって、2%3!= 0

17は、最後から3番目の位置にあります。だから3%3 == 0。

17はn%k == 0ノードから終わりです。

はい、これは1回で確認できます。この場合、2つの参照先はヘッドであり、その他はmod_Nodeです。それは端からあなたの「あなたmod_Nodeを指し、その時点で、その後はnullに達しヘッドのn%のK == 0一度ヘッドであなたのmod_Nodeの移動を開始した後、最初のk個の位置までご参照を移動"ノード。

public Node modNode(Node head,int k) 
{ 
    Node mod_Node=head; 

    int i=0; 

    while(head!=null) 
    { 
     if(i<k) 
      i++;   
     else 
      mod_Node=mod_Node.next; 
     head=head.next; 
    } 
    return mod_Node; 
} 
関連する問題