我正在实现一个链接列表,该列表具有插入函数,一旦插入节点就返回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;
}
答案 0 :(得分:2)
在你的情况下,insert()方法应该是无效的,因为你在所有的情况中都是正确的。返回布尔值意味着有些情况下您无法将元素插入集合中,例如不允许重复项