zoukankan      html  css  js  c++  java
  • 剑指offer——合并两个排序的链表

    题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

    C++代码:

    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };
    
    class Solution {
    public:
        //递归实现
    	ListNode* Merge(ListNode* list1, ListNode* list2)
    	{
    		if (list1 == NULL)return list2;
    
    		if (list2 == NULL)return list1;
    
    		if (list1->val <= list2->val) {
    			list1->next = Merge(list1->next, list2);
    			return list1;
    		}
    		else {
    			list2->next = Merge(list1, list2->next);
    			return list2;
    		}
    	}
        //非递归实现
    	ListNode* Merge2(ListNode* list1, ListNode* list2)
    	{
    		if (list1 == NULL)
    			return list2;
    		if (list2 == NULL)
    			return list1;
    
    		ListNode *mergeHead = NULL;
    		ListNode *current = NULL;
    
    		while (list1 != NULL && list2 != NULL)
    		{
    			if (list1->val <= list2->val)
    			{
    				if (mergeHead == NULL)
    				{
    					mergeHead = current = list1;
    				}
    				else
    				{
    					current->next = list1;
    					current = current->next;
    				}
    				list1 = list1->next;
    			}
    			else 
    			{
    				if (mergeHead == NULL)
    				{
    					mergeHead = current = list2;
    				}
    				else 
    				{
    					current->next = list2;
    					current = current->next;
    				}
    				list2 = list2->next;
    			}
    		}
    		if (list1 == NULL)
    		{
    			current->next = list2;
    		}
    		else 
    		{
    			current->next = list1;
    		}
    		return mergeHead;
    	}
    };
    天上我才必有用,千金散尽还复来!
  • 相关阅读:
    Spark面对OOM问题的解决方法及优化总结 (转载)
    spark rdd 宽窄依赖理解
    hive orc update
    hive sql 语句执行顺序及执行计划
    java 正则 贪婪匹配 匹配sql语句中的引号内容
    java 权重随机算法实现
    MySQL创建用户和加限权
    MySQL完整性约束
    MySQL基础操作与数据类型
    MySQL数据库初识
  • 原文地址:https://www.cnblogs.com/lutaishi/p/13436300.html
Copyright © 2011-2022 走看看