我收到了这个错误:
不兼容的类型:int无法转换为Node
为什么我会遇到这种错误?
public void insertItem(int e)
{
if(e<head.getItem())
{
addFirst(e);
}
else if(count==1)
{
addLast(e);
}
else
{
Node newNode = new Node(e);
Node prev = head;
Node p = prev.getItem();
while(p!=null)
{
if(e<p.getItem())
{
newNode.setLink(p);
prev.setLink(newNode);
p = p.getLink();
prev = prev.getLink();
}
}
}
}
public class Node {
private Node link;
private int item;
public Node(int item, Node link) {
setLink(link);
setItem(item);
}
public Node(int item) {
this(item, null);
}
public Node() {
this(0, null);
} //empty node
public void setLink(Node link) {
if (link != null) this.link = link;
}
public void setItem(int item) {
this.item = item;
}
public Node getLink() {
return link;
}
public int getItem() {
return item;
}
public String toString() {
return item + "";
}
}
我在这里使用来自另一个类的getItem():
public class Node
{
private Node link;
private int item;
public Node(int item, Node link)
{
setLink(link);
setItem(item);
}
public Node(int item)
{
this(item, null);
}
public Node()
{
this(0, null);
}
//empty node public void setLink(Node link){ if(link != null) this.link = link; } public void setItem(int item)
// {this.item = item;} public Node getLink(){return link;} public int getItem(){return item;} public String toString(){return item+ "";} }
答案 0 :(得分:0)
正如您可以清楚地看到的那样,Node#getItem
返回int
值不是Node
值。
因此,当您尝试写作时:Node p = prev.getItem();
它会向您显示错误。
也许你需要的是:Node p = prev.getLink();