【发布时间】:2016-05-13 10:05:03
【问题描述】:
这是我的双向链表(循环)实现中的代码块。
能不能返回一个方法,比如addBefore方法的return语句?
public boolean addAfter(int value, int target) {
Node targetNode = findExact(target);
Node temp = new Node(value);
if(targetNode == null) {
return false;
} else if((targetNode.next == null)) { //prevNode is head, when list.size = 1
temp.next = head;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else if(targetNode.next == head) { //prevNode is tail,
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
head.prev = temp;
size++;
return true;
} else { //prevNode is a node inbetween two nodes
temp.next = targetNode.next;
temp.prev = targetNode;
targetNode.next = temp;
temp.next.prev = temp;
size++;
}
return true;
}
public boolean addBefore(int value, int target) {
Node targetNode = findPrev(target);
return addAfter(value, targetNode.data);
}
【问题讨论】:
-
它不是返回另一个方法,而是返回另一个方法返回的值。话虽如此,是的,你没有理由不能这样做。
-
你尝试的时候发生了什么?
-
得到了 NullPointerException,这意味着我没有从 addAfter 中找到一些逻辑错误,或者 addAfter 不应该只是这样应用,因为在其目标之前添加节点的性质可能需要不同的逻辑。感谢您确认这项工作,就像我想的那样,我想我会在弄清楚如何解决它之后回答自己。
标签: java return return-value return-type