zoukankan      html  css  js  c++  java
  • [算法]合并两个有序的单链表

    题目:

    给定两个有序单链表的头结点head1和head2.请合并两个有序链表,合并后的链表依然有序,并返回合并后的链表的头结点。

    例如:

    0->2->3->7->null;

    1->3->5->7->9->null;

    合并后的链表为:0->1->2->3->3->5->7->7->9->null。

    程序:

    public static Node merge(Node head1,Node head2){
    
    		if (head1==null||head2==null) {
    
    			return head1=head2==null?head2:head1;
    
    		}
    
    		Node head=head1.value<head2.value?head1:head2;
    
    		Node cur1=head1.value<head2.value?head1:head2;
    
    		Node cur2=head1.value>head2.value?head1:head2;
    
    		Node pre=cur1;
    
    		Node next=cur1.next;
    
    		while(cur1!=null&&cur2!=null){
    
    			if (cur1.value<=cur2.value) {
    
    				pre=cur1;
    
    				cur1=cur1.next;
    
    			}else{
    
    				next=cur2.next;
    
    				pre.next=cur2;
    
    				cur2.next=cur1;
    
    				pre=cur2;
    
    				cur2=next;
    
    			}
    
    		}
    
    		pre.next=cur1==null?cur2:cur1;
    
    		return head;
    
    	}
  • 相关阅读:
    大数据
    入门
    bootstrap
    django 实现
    django
    爬虫
    汇编指令
    JavaScript
    那些年踩过的坑
    实现网页代码
  • 原文地址:https://www.cnblogs.com/xiaomoxian/p/5255511.html
Copyright © 2011-2022 走看看