Map<Character, Integer> symbolValues = new HashMap<Character, Integer>() {{
put('I',1);
put('V',5);
put('X',10);
put('L',50);
put('C',100);
put('D',500);
put('M',1000);
}};
public int romanToInt(String s) {
int ans = 0;
int n = s.length();
for (int i = 0; i < n; ++i) {
int value = symbolValues.get(s.charAt(i));
if (i < n - 1 && value < symbolValues.get(s.charAt(i + 1))) {
ans -= value;
} else {
ans += value;
}
}
return ans;
}
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode newHead=new ListNode(-1);//定义了一个傀儡节点
ListNode cur=newHead;//定义一个节点去让其遍历
//用cur去遍历是因为最后要返回头节点
while (list1!=null&&list2!=null){//中止条件为其中一个为null
if(list1.val<list2.val){
//list1小则把cur和list1穿在一起
cur.next=list1;
list1=list1.next;
cur=cur.next;
}else{
cur.next=list2;
list2=list2.next;
cur=cur.next;
}
}
//判断谁先为null
if (list1!=null){
//list1不为null则把cur和list1串上即可
cur.next=list1;
}
if (list2!=null){
//list1不为null则把cur和list1串上即可
cur.next=list2;
}
return newHead.next;
}