weixin_42350669 2010-03-05 20:12
浏览 442
已采纳

写个链表,空指针异常。不理解

class Node{
String data;
Node next;
public Node(){}
public Node(String data, Node next) {
this.data = data;
this.next = next;
}
}

public class List {
private Node head;
private int size=0;
public List(){
head = new Node(null,null);
}

public void add(String data){
    Node temp=head;
    while(temp!=null){
        temp=temp.next;
    }
    [color=red]temp.next = new Node(data,null);[/color] //哪错了?
}

public int getSize(){
    return size;
}

public void getNode(int i){
    Node temp = head;
    for(int n=0;n<0;n++){
        if(temp!=null)
            temp=temp.next;
    }
    System.out.println(" "+temp.data);
}


public void print(){
    for(Node temp=head.next; temp!=null; temp=temp.next){
        System.out.println(" "+temp.data);
    }
}

public static void main(String[] args){
    List l = new List();
    l.add("a");
    l.add("b");
    l.add("c");
    l.add("d");
    l.print();
    l.getNode(2);

}

}

  • 写回答

3条回答 默认 最新

  • 拽拽的初行者 2010-03-05 20:38
    关注

    我只是解决了你的Null异常,靠的是 更改程序的流程。

    而你的这个链表设计有问题。

    你的Add方法,没有对head进行操作。head的data是null 但是head的next节点不是null

    所以 你可以添加,但是在getNode时,一次也没有调用temp.next.

    最后 还是head节点。所以输入的是head的data, 当然null了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?
  • ¥50 寻找fpga的benchmark