看看我的代码(有序链表的插入):class Link { public int data; public Link next; public Link(int data) { this.data = data; } public void displayLink() { System.out.println(toString()); } public String toString() { return "{" + data + "}"; } }class LinkList { private Link first; public void insert(int data) { Link newlink = new Link(data); Link current = first; Link previous = null; if (current == null) { newlink.next = first; first = newlink; return; } while (current.data < data){ System.out.println(current.data); System.out.println(data); if (current.next == null){ break; } previous = current; current = current.next; } if (current == previous){ newlink.next = first.next; first = newlink; }else if (current.next == null){ newlink.next = null; current.next = newlink; }else{ newlink.next = current; previous.next = newlink; } } .........后面省略 ===========================================================================再看看书上的代码:class Link { public int data; public Link next; public Link(int data) { this.data = data; } public void displayLink() { System.out.println(toString()); } public String toString() { return "{" + data + "}"; } }class LinkList { private Link first; public void insert(int data) { Link newlink = new Link(data); Link current = first; Link previous = null; while (current != null && current.data > data) { previous = current; current = current.next; } if (previous == null) { first = newlink; } else { previous.next = newlink; } newlink.next = current; } ...........后面省略写了半天,我那段代码还是错的,思路又复杂又混乱。书上的多简单呀。
{
public int data;
public Link next; public Link(int data)
{
this.data = data;
}
public void displayLink()
{
System.out.println(toString());
}
public String toString()
{
return "{" + data + "}";
}
}class LinkList
{
private Link first; public void insert(int data)
{
Link newlink = new Link(data);
Link current = first;
Link previous = null; if (current == null)
{
newlink.next = first;
first = newlink;
return;
} while (current.data < data){
System.out.println(current.data);
System.out.println(data);
if (current.next == null){
break;
}
previous = current;
current = current.next;
}
if (current == previous){
newlink.next = first.next;
first = newlink;
}else if (current.next == null){
newlink.next = null;
current.next = newlink;
}else{
newlink.next = current;
previous.next = newlink;
}
}
.........后面省略
===========================================================================再看看书上的代码:class Link
{
public int data;
public Link next; public Link(int data)
{
this.data = data;
}
public void displayLink()
{
System.out.println(toString());
}
public String toString()
{
return "{" + data + "}";
}
}class LinkList
{
private Link first; public void insert(int data)
{
Link newlink = new Link(data);
Link current = first;
Link previous = null; while (current != null && current.data > data)
{
previous = current;
current = current.next;
}
if (previous == null)
{
first = newlink;
}
else
{
previous.next = newlink;
}
newlink.next = current;
}
...........后面省略写了半天,我那段代码还是错的,思路又复杂又混乱。书上的多简单呀。