编写测试用例所遇到的问题
来源:5-2 测试自己的Leetcode链表代码
慕仙0279751
2018-11-09
public ListNode(int [] x){
if(x==null&&x.length==0){
throw new IllegalArgumentException("the array is illage");
}
// ListNode head=new ListNode(x[0]);
this.val=x[0];
ListNode cur=this;
for(int i=1;i<x.length;i++){
cur.next=new ListNode(x[i]);
cur=cur.next;
}
}
@Override
public String toString(){
StringBuilder str=new StringBuilder();
ListNode cur=this;
if(cur!=null){
str.append(cur.val+"->");
cur=cur.next;
}
str.append("null");
return str.toString();
}
老师,这是按照课程写的测试用的方法,假设输入一个数组{1,2,4},在调试的时候是显示1节点的next是4,但是无论是打印还是永它next是直接的空,像下面图片那样,请问老师这个怎么理解?希望老师解答
写回答
1回答
-
liuyubobobo
2018-11-10
你给的截图,1的next节点是2哦:)
打印有错误,因为你的toString有错误。你的toString里用的是if,只执行了一次。实际应该用while进行循环。
课程的所有代码都可以通过官方github获得。传送门:https://github.com/liuyubobobo/Play-with-Data-Structures
你的这个代码,课程提供的官方代码参见:https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/05-Recursion/02-Test-Your-LinkedList-Solution/src/ListNode.java
对于课程中的代码,结果和课程不一致,可以先尝试在你的环境里运行课程官方代码,看是否有一样的问题?如果没有问题,请仔细比对调试,看看自己的代码哪里有问题:)
加油!:)
032018-11-10
相似问题