Java error: unreachable statement when create new linked list node
Java error: unreachable statement when create new linked list node
我写了一个合并两个链表的程序,所以我先创建了一个dummyHead。但是编译器returns给我一个错误:unreachable statement。我在网上查了,还是不明白为什么会这样。
密码是:
/**
* class ListNode {
* public int value;
* public ListNode next;
* public ListNode(int value) {
* this.value = value;
* next = null;
* }
* }
*/
public class Solution {
public ListNode merge(ListNode one, ListNode two) {
if(one == null && two != null){
return two;
}else if(one != null && two == null){
return one;
}else{
return null;
}
ListNode dummyHead = new ListNode(-1);
ListNode cur_one = one;
ListNode cur_two = two;
ListNode dummyCur = dummyHead;
while(cur_one.next == null || cur_two.next == null){
if(cur_one.value <= cur_two.value){
dummyCur.next = cur_one;
cur_one = cur_one.next;
}else{
dummyCur.next = cur_two;
cur_two = cur_two.next;
}
dummyCur = dummyCur.next;
}
if(cur_one.next != null){
dummyCur.next = cur_one.next;
}
if(cur_two.next != null){
dummyCur.next = cur_two.next;
}
return dummyHead.next;
}
}
错误信息为:
error:java.io.IOException: /Solution.java:21: error: unreachable statement
ListNode dummyHead = new ListNode(-1);
感谢您的回复。
由于您的 if/else if/else 条件,该行永远不会执行:
if(one == null && two != null){
return two;
} else if(one != null && two == null){
return one;
} else{
return null;
}
根据这个条件,在执行第21行之前返回2、1或null。
您需要删除 else 以允许该方法继续执行。
在您的第一个 if 语句中,由于最后一个 else 块,您在所有可能的情况下都提前退出了该方法。这就是为什么 none 以下语句将永远被执行的原因。
else {
return null;
}
该行之前的最后一个 else 条件 returns null。如果您希望使用其余函数,请删除最后一个 else 条件。
我写了一个合并两个链表的程序,所以我先创建了一个dummyHead。但是编译器returns给我一个错误:unreachable statement。我在网上查了,还是不明白为什么会这样。
密码是:
/**
* class ListNode {
* public int value;
* public ListNode next;
* public ListNode(int value) {
* this.value = value;
* next = null;
* }
* }
*/
public class Solution {
public ListNode merge(ListNode one, ListNode two) {
if(one == null && two != null){
return two;
}else if(one != null && two == null){
return one;
}else{
return null;
}
ListNode dummyHead = new ListNode(-1);
ListNode cur_one = one;
ListNode cur_two = two;
ListNode dummyCur = dummyHead;
while(cur_one.next == null || cur_two.next == null){
if(cur_one.value <= cur_two.value){
dummyCur.next = cur_one;
cur_one = cur_one.next;
}else{
dummyCur.next = cur_two;
cur_two = cur_two.next;
}
dummyCur = dummyCur.next;
}
if(cur_one.next != null){
dummyCur.next = cur_one.next;
}
if(cur_two.next != null){
dummyCur.next = cur_two.next;
}
return dummyHead.next;
}
}
错误信息为:
error:java.io.IOException: /Solution.java:21: error: unreachable statement
ListNode dummyHead = new ListNode(-1);
感谢您的回复。
由于您的 if/else if/else 条件,该行永远不会执行:
if(one == null && two != null){
return two;
} else if(one != null && two == null){
return one;
} else{
return null;
}
根据这个条件,在执行第21行之前返回2、1或null。
您需要删除 else 以允许该方法继续执行。
在您的第一个 if 语句中,由于最后一个 else 块,您在所有可能的情况下都提前退出了该方法。这就是为什么 none 以下语句将永远被执行的原因。
else {
return null;
}
该行之前的最后一个 else 条件 returns null。如果您希望使用其余函数,请删除最后一个 else 条件。