Merge 2 Sorted Lists

2024-05-29 04:48
文章标签 sorted lists merge

本文主要是介绍Merge 2 Sorted Lists,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


合并两个有序链表:
P1  1-3-5-7-9
P2  2-4-6-8-10
首先选取P1.head 和P2.head 中较小的作为头结点。假设是P1.
那么Head的next节点应该是P1.next 和 p2 中较小的节点。即P1以P1.next 为头结点继续迭代。


代码(递归)


public static ListNode mergeLists(ListNode r1, ListNode r2) {
        if (r1 == null) {
            return r2;
        }
        if (r2 == null) {
            return r1;
        }


        ListNode phead = null;
        if (r1.val < r2.val) {
            phead = r1;
            phead.next = mergeLists(r1.next, r2);
        } else {
            phead = r2;
            phead.next = mergeLists(r1, r2.next);
        }
        return phead;
    }


这篇关于Merge 2 Sorted Lists的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1012685

相关文章

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

56. Merge Interval

题目: 解答: 常规的合并,根据前后interval是否有交集判定。 代码: /*** Definition for an interval.* struct Interval {* int start;* int end;* Interval() : start(0), end(0) {}* Interval(int s, int e) : start

多表连接的三种方式hash join,merge join,nested loop

多表之间的连接有三种方式:Nested Loops,Hash Join和 Sort Merge Join. 下面来介绍三种不同连接的不同:     一. NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大(大于1 万不适合),要把返回

gitlab 上源码Merge后出现git gc的解决方案

问题: 远程主分支在merger其他分支的请求后,本地主分支pull 远程分支出现git gc * branch master -> FETCH_HEADAuto packing the repository for optimum performance. You may alsorun "git gc" manually. See "git help g

LeetCode - 33. Search in Rotated Sorted Array

33. Search in Rotated Sorted Array  Problem's Link  ---------------------------------------------------------------------------- Mean:  给你一个数组,这个数组是由两个有序的数组拼接成的(无重复元素),在这个数组中查找元素k的下标. anal

SQL SERVER中使用Merge进行批量操作

在.net开发过程中,经常会和数据库打交道。微软的产品包里,SQL SERVER便是一个强大的数据库管理系统(DBS)。我们编写的.net程序怎么和DBS进行交互呢?笔者最常用的便是ado.net组件,其中包括了执行sql命令,执行存储过程等丰富的操作方法。在ERP(企业资源计划)系统中,最常见的场景便是单条数据的增、删、改,或者小批量的DML(数据操纵语言)操作。在这种场景下,应用程序和DBS

Merge Sort Array and Merge Sort Linked List

Merge Sort Array: 看完stanford的 CS106B的video,https://www.youtube.com/watch?v=LlNawf0JeF0&list=PLnfg8b9vdpLn9exZweTJx44CII1bYczuk&index=55 醍醐灌顶; public class Solution {/*** @param A: an integer array* @

Sorting (Merge Sort, Rainball Sort, quick select) 总结

Merge k Sorted Lists (这题是用PQ,或者merge sort都可以做,关于第K大的问题,参考: Find Kth 题目类型总结) Sort an Array (重点掌握merge sort和quick sort,因为两者可以演变为,divide conquer, quick select, 参考: Find Kth 题目类型总结) Sort Colors 思路:三指针,i

MySQL 存储过程实现 MERGE INTO

编写存储过程中,经常遇到的问题就是:在同步某项数据时,我们需要做到如果库里之前有改信息,则更新,如果没有则插入。在Oracle存储过程中我们可以通过Merge INTO 来实现。但是MySQL数据库存储过程不支持Merge INTO。那我们应该如何实现呢? 首先我们看下在Oracle数据库中Merge INTO的语法 MERGE INTO [target-table] A USING [sou

Git 仓库间代码迁移 | merge cherry-pick

工作中遇到了这样场景:原工程 A 由于业务发展,衍生出了 B 工程,至此两个工程独立迭代。A 工程近期上线了一个功能,B 工程也希望具备该功能,需要研发同学做代码的同步。 问题简化:如何在两个 git 仓库间做代码迁移。 回溯一下,如果将代码从一个分支迁移到另一个分支。 如果需要所有代码变动,可以使用 merge 操作;如果需要部分代码变动(某几个提交),可以使用 cherry-pick