PAT:两个有序链表序列的合并(Java实现)

来源:互联网 发布:深爱的女孩 网络歌手 编辑:程序博客网 时间:2024/05/24 04:16

两个有序链表序列的合并

已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。


public class Test4 {public static void main(String[] args) {// TODO Auto-generated method stubLinkNode l1=new LinkNode();LinkNode node1=new LinkNode();LinkNode node2=new LinkNode();LinkNode l2=new LinkNode();LinkNode node3=new LinkNode();LinkNode node4=new LinkNode();l1.next=node1;node1.data=2;node1.next=node2;node2.data=4;node2.next=null;l2.next=node3;node3.data=1;node3.next=node4;node4.data=3;node4.next=null;LinkNode l3=merge(l1,l2);    print(l3);    print(l1);    print(l2);    }public static LinkNode merge(LinkNode l1,LinkNode l2){if(l1.next==null && l2.next==null)return l1;if(l1.next==null)return l2;if(l2.next==null)return l1;LinkNode pa=new LinkNode();LinkNode pb=new LinkNode();LinkNode pc=new LinkNode();LinkNode l3=new LinkNode();pa=l1.next;pb=l2.next;l3=pc;while(pa!=null && pb!=null){if(pa.data<pb.data){pc.next=pa;pa=pa.next;}else{pc.next=pb;pb=pb.next;}pc=pc.next;}if(pa!=null)pc.next=pa;elsepc.next=pb;l1.next=null;l2.next=null;return l3;}public static void print(LinkNode l){if(l.next==null){System.out.print(l.next);}LinkNode p=l;while(p.next!=null){p=p.next;System.out.print(p.data+" ");}System.out.println();}}class LinkNode{int data;LinkNode next;}





0 0
原创粉丝点击