LeetCode刻意练习7--合并两个有序链表

在这里插入图片描述
题目:在这里插入图片描述
思路:
1.先定义一个临时结点,并且定义一个指针tail指向该结点(该结点再后续将进行移动,方便单链表中元素的添加)
2.考虑特殊情况,如果两个链表有一个为空,那么返回另一个链表的头结点
3.一般情况,比较两个链表头结点的值,值小的那个结点添加在临时结点后边,tail后移,(方便继续添加元素)并将值小的那个结点的指针也后移,方便继续与另一个链表头结点进行比较,直到结点指向为空,则是第二种情况。

 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
          	ListNode dummy_node=new ListNode(0);
    	dummy_node.next=null;
    	ListNode tail=dummy_node;
    	
    	while(true)	
    	{
    		if(l1==null)
        	{	
    			tail.next=l2;
        		break;
        	}
        	
        	if(l2==null)
        	{
        		tail.next=l1;
        		break;
        	}
        	
    		if(l1.val<l2.val)
        	{
    			tail.next=l1;
        		l1=l1.next;
                tail=tail.next;
        	}
        	else
        	{
        		tail.next=l2;
        		l2=l2.next;
                tail=tail.next;
        	}
    	}
    	
    	return dummy_node.next;
发布了49 篇原创文章 · 获赞 2 · 访问量 890

猜你喜欢

转载自blog.csdn.net/qq_43720551/article/details/104722123
今日推荐