0

ノードが挿入されるとtrueを返す挿入関数を持つリンクリストを実装して遊んでいます。このタイプのシナリオで概念的に false を返す正しい方法は何ですか?

public boolean insert(int d) {
        if (head == null) {
            head = new Node(d);
            return true;
        }

        if (head.data > d) {
            Node holder = head;
            Node newNode = new Node(d);
            head = newNode;
            head.next = holder;
            holder.prev = newNode;
            return true;
        }

        Node tmpNode = head;

        while (tmpNode.next != null && tmpNode.next.data < d) {
            tmpNode = tmpNode.next;
        }

        Node prevTmp = tmpNode;         
        Node insertedNode = new Node(d);

        if (tmpNode.next != null) {
            Node nextTmp = tmpNode.next;
            insertedNode.next = nextTmp;
            nextTmp.prev = insertedNode;
        } 
        prevTmp.next = insertedNode;
        insertedNode.prev = prevTmp;    
        return true;
    }
4

1 に答える 1

2

あなたの場合、すべての状況で true を返すため、insert() メソッドは無効にする必要があります。ブール値を返すということは、要素をコレクションに挿入できない状況があることを意味します。たとえば、重複は許可されません。

于 2013-10-27T03:15:00.920 に答える