日期:2014-05-20 浏览次数:21134 次
class list {
int value;
list next;// =null;
}
public class linkList {
list head = null;
public void insert(int num) {
list newNode = new list();
list runner;
list previouse;
newNode.value = num;
if (head == null) {
head = newNode;
newNode.next = null;
} else {
previouse = null;
runner = head;
while (runner != null && runner.value < num) { // 你的写法有点问题,应该先判断是否为null
// 在判断value,因为&&是短路操作符,如果runner为null了,就不会判断.value
// < num,按照你的写法,如果runner为null则会报空指针
previouse = runner;
runner = runner.next;
}
if (previouse == null) {
head = newNode;
newNode.next = runner;
} else if (runner == null) {
previouse.next = newNode;
newNode.next = runner;
}
}
}
public void printList() {
list runner = new list();
if (head == null)
System.out.println("This is an empty list!");
else {
runner = head;
while (runner != null) {
System.out.println(runner.value);
runner = runner.next;
}
}
}
public static void main(String[] args) {
int number;
linkList myList = new linkList();
for (int i = 0; i < 10; i++) {
// for (int i = 10; i > 0; i--) {
myList.insert(i);
}
myList.printList();
}
}