Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从链表中删除所有节点(给定开始索引和结束索引)_Java_Linked List_Nodes - Fatal编程技术网

Java 从链表中删除所有节点(给定开始索引和结束索引)

Java 从链表中删除所有节点(给定开始索引和结束索引),java,linked-list,nodes,Java,Linked List,Nodes,我正在编写一个额外的removeRange()方法,除了开始索引和结束索引作为参数之外。我已经通过了所有条件,除了节点数等于从开始到结束的范围 示例“我的链接列表”包含: 1 -> 2 -> 3 调用方法removeRange(0,2)后: 列表应变为null,因为从0到2,计数为3,并且我的列表中还有3个元素 如果可以的话,看看这张图片,以便更好地了解正在发生的事情 代码: public void removeRange(int start, int end) { if

我正在编写一个额外的
removeRange()
方法,除了
开始索引
结束索引
作为参数之外。我已经通过了所有条件,除了节点数等于从开始到结束的范围

示例“我的链接列表”包含:

1 -> 2 -> 3
调用方法
removeRange(0,2)
后:

列表应变为
null
,因为从0到2,计数为3,并且我的列表中还有3个元素

如果可以的话,看看这张图片,以便更好地了解正在发生的事情

代码:

public void removeRange(int start, int end) {
    if(start < 0 || end < 0) {
        throw new IllegalArgumentException();
    } 
    if(start == 0 && end == 0) {
        front = front.next;
    } else if (start == 0 && end == 1) {
        front = front.next.next;
    } else {
        ListNode head = front;
        for(int i = 0; i < start-1;i++) {
            head = head.next;
        }
        ListNode tail = front;
        for(int i = 0; i < end;i++) {
            tail = tail.next;
        }
        head.next = tail.next;
    }
}
public void remoterange(int start,int end){
如果(开始<0 | |结束<0){
抛出新的IllegalArgumentException();
} 
如果(开始==0&&end==0){
front=front.next;
}else if(start==0&&end==1){
front=front.next.next;
}否则{
ListNode头=前面;
对于(int i=0;i
假设您的
tail.next==null
那么您仍然需要设置
front=head
,就像您在之前更新
front
的案例中所做的那样,假设您的
tail.next==null
那么您仍然需要设置
front=head
,就像您在您的以前更新
front
的情况假设您的
tail.next==null
那么您仍然需要设置
front=head
,就像以前更新
front
的情况一样,假设您的
tail.next==null
那么您仍然需要设置
front=head
正如您在之前更新
front

的案例中所做的一样,对任何链接数据结构(列表、树、图形)进行编码的最佳方法是获取白板,并绘制链接列表。然后,对于测试输入,一次一行地遍历代码,就像计算机执行代码一样。对于每一行,在绘制的版本上进行相应的更改。在某个时刻,代码会告诉你画一些你知道不对的东西,这会告诉你你的问题在哪里

我在代码中注意到的一点是,您不能确保输入范围与列表的大小一致。如果列表有5个节点长,有人调用RemoveAnte(10,12),该怎么办

对于这个特定的问题,您有4个案例,您应该按照以下顺序测试和处理它们。 1.Start=head和End=tail,此时您将head和tail都设置为null,从而清空链接列表。
2.开始=头部。将头部移动到端点+1。 3.结束=结束。将尾部移动到起始位置-1。

4.其他一切。头部=开始+1,尾部=结束-1

对任何链接数据结构(列表、树、图形)进行编码的最佳方法是获得白板,然后绘制链接列表。然后,对于测试输入,一次一行地遍历代码,就像计算机执行代码一样。对于每一行,在绘制的版本上进行相应的更改。在某个时刻,代码会告诉你画一些你知道不对的东西,这会告诉你你的问题在哪里

我在代码中注意到的一点是,您不能确保输入范围与列表的大小一致。如果列表有5个节点长,有人调用RemoveAnte(10,12),该怎么办

对于这个特定的问题,您有4个案例,您应该按照以下顺序测试和处理它们。 1.Start=head和End=tail,此时您将head和tail都设置为null,从而清空链接列表。
2.开始=头部。将头部移动到端点+1。 3.结束=结束。将尾部移动到起始位置-1。

4.其他一切。头部=开始+1,尾部=结束-1

对任何链接数据结构(列表、树、图形)进行编码的最佳方法是获得白板,然后绘制链接列表。然后,对于测试输入,一次一行地遍历代码,就像计算机执行代码一样。对于每一行,在绘制的版本上进行相应的更改。在某个时刻,代码会告诉你画一些你知道不对的东西,这会告诉你你的问题在哪里

我在代码中注意到的一点是,您不能确保输入范围与列表的大小一致。如果列表有5个节点长,有人调用RemoveAnte(10,12),该怎么办

对于这个特定的问题,您有4个案例,您应该按照以下顺序测试和处理它们。 1.Start=head和End=tail,此时您将head和tail都设置为null,从而清空链接列表。
2.开始=头部。将头部移动到端点+1。 3.结束=结束。将尾部移动到起始位置-1。

4.其他一切。头部=开始+1,尾部=结束-1

对任何链接数据结构(列表、树、图形)进行编码的最佳方法是获得白板,然后绘制链接列表。然后,对于测试输入,一次一行地遍历代码,就像计算机执行代码一样。对于每一行,在绘制的版本上进行相应的更改。在某个时刻,代码会告诉你画一些你知道不对的东西,这会告诉你你的问题在哪里

我在代码中注意到的一点是,您不能确保输入范围与列表的大小一致。如果列表有5个节点长,有人调用RemoveAnte(10,12),该怎么办

对于这个特定的问题,您有4个案例,您应该按照以下顺序测试和处理它们。 1.Start=head和End=tail,此时您将head和tail都设置为null,从而清空链接列表。
2.开始=头部。将头部移动到端点+1。 3.结束=结束。将尾部移动到起始位置-1。
4.其他一切。头部=起点+1,尾部=