public class MergeLink {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
NodeList node1 = createNodeList(str1);
NodeList node2 = createNodeList(str2);
NodeList newNode = null;
if(node1 !=null && node2 !=null){
newNode = mergeLink(node1, node2);
}
System.out.println(newNode);
}
/**
* 創建單鏈表
* @param str
* @return
*/
public static NodeList createNodeList(String str){
if(str ==null || str.length() <=0){
return null;
}
char[] s = str.toCharArray();
NodeList[] nodeLists = new NodeList[s.length];
//初始化鏈表
for(int i=0;i<s.length;i++){
nodeLists[i] = new NodeList(s[i]);
}
//將鏈表連接起來
for(int i=0;i<s.length;i++){
if(i == s.length-1){
nodeLists[i].next = null;
}else {
nodeLists[i].next = nodeLists[i+1];
}
}
return nodeLists[0];
}
/**
* 將兩個有序的單鏈表合併
* @param node1
* @param node2
* @return
*/
public static NodeList mergeLink(NodeList node1,NodeList node2){
if(node1 ==null){
return node2;
}
if(node2 ==null){
return node1;
}
NodeList newNodeList = null;
if(node1.var <=node2.var){
newNodeList = node1;
newNodeList.next = mergeLink(node1.next,node2);
}else {
newNodeList = node2;
newNodeList.next = mergeLink(node1,node2.next);
}
return newNodeList;
}
}