请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于为链表添加构造方法的问题

我想要为自己的链表添加一个可以吧数组转化为链表的构造方法,依据老师在本节的部分代码,我做了如下的实现

public Linkedlist(E[] arr) {
		
		if(arr == null || arr.length == 0)
			throw new IllegalArgumentException("arr can not be empty");
		
		dummyHead.next.e = arr[0];
		Node cur = dummyHead.next;
		for(int i = 0 ; i < arr.length ; i ++) {
			cur.next = new Node(arr[i],cur.next);
			cur = cur.next;
		}
	}
debug只会跳 java.lang.NullPointerException 请老师帮忙解答,谢谢


正在回答

2回答

初始的时候dummyHead.next为空,第6行调用dummyHead.next.e,相当于调用了 空.e,所以报空指针异常:)


再试试看?加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 the__sky123 #1
    在经历一系列头脑风暴之后得出的结论,这样可以吗?还有没有可优化或者是bug?
    public Linkedlist(E[] arr) {
    		
    		if(arr == null || arr.length == 0)
    			throw new IllegalArgumentException("arr can not be empty");
    		
    		dummyHead = new Node(null,null);
    		Node prev = dummyHead;
    		for(int i = 0 ; i < arr.length ; i ++) {
    			
    			Node node = new Node(arr[i]);
    			prev.next = node;
    			prev = prev.next;
    			
    		}
    		size = arr.length;
    		
    	}
    回复 有任何疑惑可以回复我~ 2018-07-07 14:15:49
  • 提问者 the__sky123 #2
    有点乱,请老师看另一个回答
    回复 有任何疑惑可以回复我~ 2018-07-07 14:16:51
  • liuyubobobo 回复 提问者 the__sky123 #3
    赞!:)
    回复 有任何疑惑可以回复我~ 2018-07-07 15:07:46
提问者 the__sky123 2018-07-07 14:16:00
public Linkedlist(E[] arr) {
		
		if(arr == null || arr.length == 0)
			throw new IllegalArgumentException("arr can not be empty");
		
		dummyHead = new Node(null,null);
		Node prev = dummyHead;
		for(int i = 0 ; i < arr.length ; i ++) {
			
			Node node = new Node(arr[i]);
			prev.next = node;
			prev = prev.next;
			
		}
		size = arr.length;
		
	}


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信