public static void main(String[] args){
Node node = new Node();
node.value = 1;
Node node2 = new Node();
node2.value = 2;
Node node3 = new Node();
node3.value = 3;
Node node4 = new Node();
node4.value = 4;
node.next=node2;
node2.next=node3;
node3.next = node4;
Node previous = null; // 前一个
Node next = node; // 后一个
//单向链表反转
while((node = next) != null){
next = node.next;
node.next = previous; // 下一个指向自己
previous = node;
}
System.out.println(previous);
int[] is ={1,2,3,4,5,6,7,8,9,10};
//二分查找法
int low = 0;
int hight = 9;
int key = 10;
while(low <= hight){
int mid = (low + hight) / 2;
System.out.println(low + ":" + hight);
if(is[mid] > key){
hight = mid - 1;
}else if(is[mid] < key){
low = mid + 1;
}else{
System.out.println(mid);
return;
}
}
}
static class Node{
int value;
Node next;
public String toString(){
String value = this.value+",";
Node node = this;
while((node = node.next) != null){
value += node.value+",";
}
return value;
}
}