链表的奇偶重排
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode oddEvenList (ListNode head) {
// write code here
ListNode dummy1=new ListNode(-1);
ListNode dummy2=new ListNode(-1);
ListNode d1=dummy1;
ListNode d2=dummy2;
ListNode cur=head;
boolean flag=true;
while(cur!=null){
if(flag){
d1.next=cur;
d1=d1.next;
}else{
d2.next=cur;
d2=d2.next;
}
cur=cur.next;
flag=!flag;
}
d2.next=null;
d1.next=dummy2.next;
return dummy1.next;
}
}
比较版本号
比较器不是很用的惯
import java.util.*;
public class Solution {
/**
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
public int compare (String version1, String version2) {
// write code here
String[] versionArray1=version1.split("\\.");
String[] versionArray2=version2.split("\\.");
int idx=0;
int minLength=Math.min(versionArray1.length,versionArray2.length);
int diff=0;
while(idx<minLength
&& (diff=versionArray1[idx].length()-versionArray2[idx].length())==0//比较长度
&&(diff=versionArray1[idx].compareTo(versionArray2[idx]))==0){//比较字符
++idx;
}
if(diff==0){
if(versionArray1.length==versionArray2.length){
diff=0;
}else{
diff=versionArray1.length-versionArray2.length>0?1:-1;
}
}else{
diff=(diff!=0)?(diff>0?1:-1):(versionArray1.length-versionArray2.length>0?1:-1);
}
return diff;
}
}