Link
public class Link {
public String str;
public Link next;
public Link(String val) {
this.str = val;
this.next = null;
}
public void disPlay() {
System.out.print( str + " " );
}
}
SortedLink
public class SortedLink {
private Link first;
public SortedLink() {
first = null;
}
public boolean isEmpty() {
return (first == null);
}
/**
* 插入的时候有序
*针对: 链表是空, 在头部插入,在中间插入, 在尾部插入 4 中情况
* @param key
*/
public void insert(String key) {
Link newNode = new Link(key);
Link previous = null;
Link current = first;
while (current != null && (key.compareTo(current.str) > 0)) {
previous = current;
current = current.next;
}
// # previous=3 ;current =null
if(previous == null) {
first = newNode;
} else {
previous.next = newNode;
}
newNode.next = current;
}
public Link remove() {
Link temp = first;
first = first.next;
return temp;
}
public void disPlay() {
System.out.println("List( first -> last ) : ");
Link current = first;
while (current != null) {
current.disPlay();
current = current.next;
}
System.out.println();
}
}
反转有序链表
public Link reverseList(Link link){
if(link == null || link.next == null){
return link;
}
Link tt = reverseList(link.next);
link.next.next = link;
link.next = null;
return tt;
}