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;
    	}
    };
    天上我才必有用,千金散尽还复来!
  • 相关阅读:
    搭建strom 的开发环境
    maven 的plugin 的使用
    Maven 的dependency 的 classifier的作用
    Maven中的dependency的scope作用域详解
    Supervisor-进程监控自动重启
    websocket 实战
    vue 监听路由变化
    vux-uploader 图片上传组件
    vue 定义全局函数
    判断对象属性的值是否空,如为空,删除该属性
  • 原文地址:https://www.cnblogs.com/lutaishi/p/13436300.html
Copyright © 2011-2022 走看看