java - Java 错误:创建新的链表节点时无法访问语句
问题描述
我编写了一个合并两个链表的程序,所以我首先创建了一个 dummyHead。但是编译器返回给我一个错误: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;
}
}
错误信息是:
错误:java.io.IOException:/Solution.java:21:错误:无法访问的语句
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 以允许该方法继续执行。
推荐阅读
- php - 我的联系表单使用 JS fetch 和 PHPMailer 有多安全?
- javascript - 仅在悬停框时如何使 div 跟随鼠标指针?
- mongodb - 为庞大的数据集实现分页,避免在 mongo 上跳过
- python - 错误:无法从“tensorflow.keras.layers.experimental.preprocessing”导入名称“StringLookup”
- sql-server - SQL Server 查询以获取前 10 种产品的出货量、平均值、mtd 和 ytd
- path - Godot:在动画播放器中更改对象的路径
- scala - 尝试从 h2 数据库中检索 json 数据时出错
- r - R - 使用 xml2 读取多个 xml 文件
- node.js - 为什么 API Gateway 没有收到 Lambda 的响应?
- regex - 在非捕获组 RegEx 中捕获电子邮件地址