2012-04-10 4 views
0

私はインターネット上のインタビューの質問の下で出会った。ノードにNULLを格納する方法は?

「次のプロトタイプ

Node GetNextNode(Node n); 

で単独LLでGetnextnode関数のコードを記述し、それを検証し、」一般的なケースの解決策は、以下の何かのようにまっすぐ進む

を:

Node GetNextNode(Node n) 
{ 
    Node temp = *(n.link); 
     return temp; 
} 

nがリストの最後のノードであるかどうか疑問に思っています。 n.linkNULLを指します。その場合は返す方法です。

また、headがリストの最初のノードへのポインタであり、リストが空の場合、それをGetNextNode関数に渡す方法です。

いずれかの方向にお願いします。ありがとう。

+0

なぜポインタを戻してポインタを取らないのですか? –

+0

このメソッドシグネチャでは、nullを返すことはできませんが、Node sentinel値を使用できます。 dereferencing null_ptrは未定義の動作なので、チェックする必要もあることを忘れないでください。 – Joe

+0

@リチャード・J.ロス3世私はそれが事実であることを望みますが、質問には明確なプロトタイプがあります。 – CppLearner

答えて

2

リストの最後を格納する別の方法があります。linkはノード自体を指します。このようにして、あなたのリンクは常に有効で、両者を比較して終わりを平等に比較するだけで簡単にテストできます。

関連する問題