class ListMethod {
//合并两个有序单链表
public singleNode Join(singleNode list,singleNode list1){
Node head=list.getHead();
Node head1=list1.getHead();
//连接到末尾
Node cur=head.next;
while (true){
if(cur.next==null)break;
cur=cur.next;
}
cur.next=head1.next;
return list;
}
public singleNode crossJoin(singleNode list,singleNode list1){
Node head=list.getHead();
Node head1=list1.getHead();
singleNode newNodeList=new singleNode();
Node headNew=newNodeList.getHead();
//交叉连接
Node curNew=headNew;
Node cur=head.next;
Node curNext=null;
Node cur1=head1.next;
Node cur1Next=null;
while(true){
if(cur==null&&cur1==null)break;
if(cur==null){
cur1Next= cur1.next;
curNew.next=cur1;
cur1.next=null;
cur1=cur1Next;
curNew=curNew.next;
continue;
}
if(cur1==null){
curNext= cur.next;
curNew.next=cur;
cur.next=null;
cur=curNext;
curNew=curNew.next;
continue;
}
if(cur.no < cur1.no){
curNext= cur.next;
curNew.next=cur;
cur.next=null;
cur=curNext;
}
else{
cur1Next= cur1.next;
curNew.next=cur1;
cur1.next=null;
cur1=cur1Next;
}
curNew= curNew.next;
}
return newNodeList;
}
}
java 单链表 首位合并与交叉合并
最新推荐文章于 2024-07-22 14:15:06 发布