java链表问题,临时引用给原引用赋值出错

错误见下面注释处“temp”

public class HaTest{
public static void main(String[]args){
HashTable hashTable=new HashTable();
hashTable.add(new Num("1"));
hashTable.add(new Num("2"));
System.out.println(hashTable.node.obj);
System.out.println(hashTable.node.next.obj);
}
}

class Num{
String name;
Num next;
public Num(String name){
this.name=name;
}
public String getName(){
return name;
}
@Override
public String toString(){
return name;
}
}

class HashTable{

public Node node;
//Node为链表节点
class Node{
    public Num obj;
    public Node next;
    public Node(Num t){
        obj=t;
    }
}

public void add(Num t){
    if(node==null)
    node=new Node(t);
    else{
        Node temp=node.next;
    ******  //这个地方用node.next赋值明显是对的,但换成temp进行赋值为什么出错
        //wrong: temp=new Node(t);******
        node.next=new Node(t);
    }
}

}

插前面
Node temp=new Node(t);
temp.next=node;
插后面
Node temp=new Node(t);
temp.next = node.next
node.next = temp;