编写测试用例所遇到的问题

来源: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哦:)

//img.mukewang.com/szimg/5be5ca44000193cc03160113.jpg


打印有错误,因为你的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 


对于课程中的代码,结果和课程不一致,可以先尝试在你的环境里运行课程官方代码,看是否有一样的问题?如果没有问题,请仔细比对调试,看看自己的代码哪里有问题:)


加油!:) 


0
3
慕仙0279751
回复
liuyubobobo
谢谢老师!!
2018-11-10
共3条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程