`
ouqi
  • 浏览: 42191 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

归并排序链表

 
阅读更多
/*
 * 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.
 */
public class MergeTwoSortedList {
	class ListNode {
		      int val;
		      ListNode next;
		      ListNode(int x) {
		          val = x;
		         next = null;
		      }
	}
	  public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
	        // Start typing your Java solution below
	        // DO NOT write main() function
	        if( l1 == null) return l2;
	        if( l2 == null) return l1;
	        
	        ListNode head = null;
	        ListNode other = null;
	        if(l1.val<l2.val) {head = l1; other = l2;}
	        else{ head = l2; other = l1;}
	        
	        ListNode resultPrev = head;
	        ListNode resultCur = resultPrev.next;
	        ListNode otherPtr = other;
	        
	        while(resultCur!=null&&otherPtr!=null){
	            if(resultCur.val<=otherPtr.val) {
	                resultPrev = resultPrev.next;
	                resultCur = resultCur.next;
	            }
	            else{
	                resultPrev.next = otherPtr;
	                otherPtr = resultCur;
	                resultCur = resultPrev.next;
	            }
	        }
	        if(resultCur == null) resultPrev.next = otherPtr;
	        
	        
	        return head;
	    }
}

 

分享到:
评论

相关推荐

    一个基于链表的归并排序程序

    1.编写一个基于链表的归并排序程序。 1)随机生成两个链表,利用随机数进行初始化 2)要求给出链表的结构,链表的初始化等排序中用到的基本操作函数 3)显示相关的输出信息 编程环境:Linux C

    用单链表和队列实现归并排序

    1. **链表数据结构**:在归并排序中,链表可以用来存储原始数据或者在分治过程中产生的子序列。由于链表不需要连续的内存空间,所以对于大规模数据,尤其是在内存有限的情况下,链表可能比数组更合适。 2. **队列的...

    [算法]快速排序,归并排序,堆排序的数组和单链表实现 数组和链表.pdf

    快速排序、归并排序、堆排序的数组和单链表实现 快速排序是一种常用的排序算法,它的时间复杂度为O(nlogn),是目前最快的排序算法之一。快速排序的基本思想是选择一个基准元素,然后将数组分成两个部分,一部分的...

    归并排序(链表和数组) 数组和链表.pdf

    链表归并排序是一种特殊的归并排序算法,它用于排序链表。链表归并排序的算法思想是将链表分解成多个子链表,然后两两合并,直到得到一个有序的链表。 在链表归并排序中,我们需要定义一个链表节点结构体,包括节点...

    归并排序算法链表实现

    归并排序的链表实现 随机生成实验数据,可以统计算法运行时间

    归并排序,排序等算法,数据结构,快速排序,链表排序

    本主题将深入探讨四种常见的排序算法:归并排序、快速排序以及与链表相关的排序方法。 首先,我们来讨论归并排序(Merge Sort)。这是一种基于分治策略的排序算法。归并排序将大问题分解为小问题,然后逐步合并这些...

    归并有序链表

    归并排序链表的基本步骤如下: 1. **创建辅助节点**:为了合并链表,我们首先需要一个辅助节点,通常称为“虚拟头节点”。虚拟头节点没有实际数据,但它的`next`指针指向第一个链表的头节点。 2. **比较节点**:从...

    基于vc++6.0用链表实现归并排序

    本教程将深入探讨如何在VC++6.0环境下,利用链表数据结构实现归并排序。 链表是一种非连续、非顺序的存储结构,每个元素称为节点,包含数据域和指针域。节点通过指针域连接成链,使得数据可以在内存中任意位置存储...

    归并排序算法实现(排序算法系列1)

    1. 分割:归并排序首先将原始数组(或链表)分成两半,通常通过取中间索引来实现。这样,我们得到两个子数组,每个子数组包含大约一半的元素。 2. 递归排序:对每个子数组递归执行归并排序。如果子数组只有一个元素...

    python-leetcode面试题解之第148题排序链表-题解.zip

    以下是使用Python实现的归并排序链表的代码示例: ```python def merge_sort_list(head): if not head or not head.next: return head # 分割链表 slow, fast = head, head.next while fast and fast.next: ...

    顺序表和链表的归并排序

    本文将深入探讨两种数据结构——顺序表和链表,并讲解如何使用面向对象的思想实现它们的归并排序。 首先,让我们了解顺序表和链表。顺序表是一种线性数据结构,它的特点是元素在内存中是连续存储的,可以通过索引来...

    2-路归并排序,写一个算法在链表结构上实现这一策略

    通过这种策略,2-路归并排序在链表结构上能够有效地处理任意长度的序列,并且由于每次只合并两个子序列,时间复杂度为O(n log n),空间复杂度为O(n),其中n是链表中的元素数量。这种方法尤其适合于链表结构,因为...

    JavaScript实现链表插入排序和链表归并排序

    在本篇技术文档中,介绍了如何使用JavaScript实现链表的两种常见排序算法:链表插入排序和链表归并排序。这两种排序算法在数据结构中占据着重要的位置,尤其是在链表这种非连续存储的数据结构中。下面详细介绍这两种...

    快速排序与归并排序比较(C++).rar_c++paixusuanfa_归并_归并排序_归并排序算法

    此外,归并排序在处理链表或无法进行原地排序的数据结构时,优势更为明显。 C++中实现快速排序和归并排序,可以利用STL中的`std::sort`函数,但为了深入理解算法,通常会自定义实现。快速排序可以采用递归或非递归...

    链表的归并排序和快速排序

    归并排序和快速排序是两种常用的排序算法,它们都可以应用于链表环境,尽管在链表上的实现与数组有所不同。下面我们将详细探讨这两种排序算法在链表上的实现细节。 ### 归并排序 (Merge Sort) **基本思想**: 归并...

    静态链表优化的归并排序并与快速排序进行性能比较

    采用静态链表和插入排序对归并排序进行优化,并随机生成一系列数,与快速排序进行性能比较,结果表明,两者接近

    链表操作、快速排序和归并排序(可运行代码)

    ### 链表操作 ...此外,还深入解析了快速排序和归并排序的实现细节,这两种排序算法都是计算机科学中非常重要的算法,广泛应用于各种场景。通过对这些知识点的学习,可以进一步提高对数据结构和算法的理解。

    WW1.rar_C 单链表 排序_归并排序

    `WW1.C` 文件很可能是实现了上述功能的代码,可能包括定义链表结构、分割链表、对链表进行归并排序以及合并两个已排序链表的函数。而`www.pudn.com.txt`可能是源代码的说明文档或参考材料,提供了关于代码实现的更多...

    单链表为存储结构, 实现二路归并排序的算法

    在这个场景中,我们使用单链表作为存储结构来实现二路归并排序,这与传统的数组或动态数组有所不同,链表允许我们在不移动元素的情况下调整顺序。 首先,我们要理解单链表的基本概念。单链表由一系列节点组成,每个...

Global site tag (gtag.js) - Google Analytics