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

在您的情况下, insert() 方法应该是无效的,因为您在所有情况下都返回 true。返回布尔值意味着在某些情况下您无法将元素插入集合中,例如不允许重复

于 2013-10-27T03:15:00.920 回答