• LeetCode Merge Two Sorted Lists


    Merge Two Sorted Lists

    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.

    入门题目了,严蔚敏的书本好像一开始就介绍了这样的题目,以前死背了好多次,始终背不出来,现在已经不用背了,感觉随时都能写出不比书本差的程序。

    本题就是考链表的操作了。

    链表的操作是要练出感觉来的。

    下面的程序提供到位操作,把链表2直接插入链表1中。

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
    	ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
    	    if (!l2) return l1;
    	    if (!l1) return l2;
    		
    		ListNode *h = l1;
    
    		if (l1->val > l2->val)
    		{
    			ListNode *t = l2->next;
    			l2->next = l1;
    			h = l1 = l2;
    			l2 = t;
    		}
    
    		while (l1->next && l2)
    		{
    			if (l1->next->val > l2->val)
    			{
    				ListNode *t = l2->next;
    				l2->next = l1->next;
    				l1->next = l2;
    				l2 = t;
    			}
    			l1 = l1->next;
    		}
    
    		if (l2) l1->next = l2;
    
    		return h;
    	}
    };






  • 相关阅读:
    [NOI2016] 网格
    [十二省联考2019]春节十二响
    wordcloud的方法参数归纳汇总
    选择困难症
    连通能力
    [Tjoi2017]城市
    bzoj3732 Network
    bzoj3252 攻略
    Noip2018旅行
    [HEOI2015]兔子与樱花
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3478602.html
Copyright © 2020-2023  润新知