Merge Two Sorted Lists

225 篇文章 0 订阅
50 篇文章 0 订阅

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

改了好久,可是明明不难的啊。

代码:

package leetcode;

import java.util.ArrayList;

public class MergeTwoLists {

	public static void main(String[] args) {
		MergeTwoLists m = new MergeTwoLists();
		ListNode l11 = new ListNode(5);
		ListNode l21 = new ListNode(1);
		ListNode l22 = new ListNode(2);
		ListNode l23 = new ListNode(4);
		
		l21.next = l22;
		l22.next = l23;
		
		//ListNode l21 = new ListNode(1);
		ListNode l =m.mergeTwoLists( new ListNode(2), new ListNode(1));
		while(l!=null){
			System.out.println(l.val);
			l=l.next;
		}

	}
	 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
		    
		 		ListNode p1 = l1,p2 = l2;
		        //指针指向两个列表的头,一点点加入merge 这个链表
		        if(l1 ==null && l2 ==null)
		        	return null;
		     
		        ListNode head = new ListNode(-1);
		        ListNode tar = head;
		        while(p1!=null && p2 !=null){
		        	tar.val = p1.val>p2.val?p2.val:p1.val;
		        	if(p1.val>p2.val){
		        		tar.next = p2;
		        		p2 = p2.next;
	
		        	}else{
		        		tar.next = p1;
		        		p1 = p1.next;
		        	}
		        	
		        	tar = tar.next;
 	
		        }
		        
		        //如果其中一个已经加完了,将另个的剩余部分加入到merge中去
		        if(p1!=null){
		        	
		        	tar.next = p1;
		        	
		        }
		        if(p2!=null){
		        	
		        	tar.next = p2;
		        }
		        
		        return head.next;
	        
	    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值