会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132808个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2911楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 2912楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2913楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术 2914楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 2915楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2917楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2918楼

老师好,关于单链表做算法题时候遇到如下代码:





/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode dummy= new ListNode(-1);
        ListNode curr= dummy;
        
        while(l1 !=null || l2 !=null){
            int x = (l1 == null)? Integer.MAX_VALUE: l1.val;
            int y = (l2 == null)? Integer.MAX_VALUE: l2.val;     
            if(x<y){
                curr.next=new ListNode(x);
                l1=l1.next;
            }else{
                curr.next=new ListNode(y);
                l2=l2.next;
            }
            curr=curr.next;    
        }
        return dummy.next;
    }
}



我的问题在20行和23行的

curr.next


因为这两部是将dummy链表往后推进,因为curr指向dummy,所以curr.next实际就是指向dummy链表的下一个节点。


但是这里我不懂,为什么不能用

dummy.next=...


这不是同样也表示dummy的下一个节点指向一个新的listnode?

因为我试了下,这样做会报错。谢谢




JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 2920楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 2921楼

容器中有两个同名hello对象,如果用list.remove("hello"),为何默认删除索引是0的这个,如果要删除后面的hello只能根据索引删除吗?


package string;


import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;

public class TestArrayList {
    public static void main(String[] args) {
        //创建集合对象,接口new实现类
        List list = new ArrayList();
        //1.添加add(Object obj)
        list.add("hello");
        list.add(123);//自动装箱

        //2.集合中元素的个数size()
        System.out.println(list.size());
        System.out.println("集合是否为空"+list.isEmpty());
        //3.addAll(collection c)集合中元素添加到其他集合中
        List list2=new ArrayList();
        list2.add("hello");
        list2.add(123);
        list.addAll(list2);
        System.out.println(list);
        System.out.println("集合中元素个数"+list.size());
        //4.删除
        System.out.println("根据对象去删除");
        list.remove("hello");
        System.out.println(list);
        list.remove(new Integer(123));//索引
        System.out.println(list);
        list.remove(0);//根据索引去删除
        System.out.println(list);
        list.add("world");
        System.out.println(list);
    }
}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2923楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 2924楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2925楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637