2012-02-19 8 views
6

最初のノードにnullオブジェクトが含まれるリンクリストがあります。つまり、firstNode.dataがnullに等しいことを意味します。firstNode.nextPointer = null、firstNode.previousPointer = null。オブジェクトがnullであるかどうかをチェック

firstNodeがnullかどうかを確認したいと思います。 は、だから私は

if(list.firstNode == null){ 

      //do stuff   
     } 

tried-が、これは作品をしませんの?

私も同じようにしてみました。助言がありますか?

印刷を試みました。そして、私はしたままのだ

{ヌル} - firstNode

+4

詳細に「動かない」説明してください。 –

+0

そのループの中には入っていません。それが私の言いたいことです。 – AKIWEB

+0

おそらく 'list.firstNode'は' null'と等しくないでしょうか? –

答えて

13

をチェックするために意味するか私はあなたのfirstNodeないnullだと思いますが、そのフィールドがあります。このような何かを試してみてください:

if (list.firstNode.data == null) { 
    //do stuff   
} 
0

あなたはlist.firstNodeがnullであることをチェックします。あなたは

list.firstNode.data==null 
1

あなたは答えが問題である

if (list.firstNode.data == null) { /* Do stuff */ } 
0

を試してみました。あなたは言った:

have a linked list in which first node contains null object. **means firstNode.data is equal to null**, 

これはあなたの代わりに次の操作を行う必要がありますを意味します

if(list.firstNode.data == null){ 
    //do stuff   
} 
0

あなたの質問は、二重リンクリストの処理に関連しているように私には思えます。
空であるかどうかを確認するには(list.firstNode.next == list.firstNode.previous)これは空の二重リンクリストの場合はtrueです。

0

ノードのすべてのフィールドがnullであるかどうかをチェックすることができます:

Node firstNode = list.firstNode; 
if(firstNode.data == null && 
    firstNode.nextPointer == null && 
    firstNode.previousPointer == null) { 
    //Do stuff 
} 

やコードの繰り返しを防ぐために、あなたはインスタンスメソッドのisNull()テストを行うために作成したり、NULLオブジェクトを作成することができますどちらかとNodeクラスのequalsメソッドをオーバーライドして、説明したようにノードがnullノードと等しいかどうかを確認します。その後

class Node<E> { 
    //The null node, assuming your constructor takes all three values. 
    public static final Node NULL = new Node(null, null, null); 

    //Fields here with constructors etc. 

    @Override 
    public void equals(Object obj) { 
     if(!obj instanceof Node) return false; 
     Node<?> node = (Node<?>)obj; 
     if(node.data.equals(this.data) && 
      node.nextPointer == this.nextPointer && 
      node.previousPointer == this.previousPointer) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

あなたは、ノードが、あなたが行うことができますnullであるかどうかを確認したい:

if(list.firstNode.equals(Node.NULL)) { 
    //Do stuff 
} 
関連する問題