文档章节

Leetcode PHP题解--D121 21. Merge Two Sorted Lists

skys215
 skys215
发布于 2019/12/12 01:50
字数 274
阅读 12
收藏 1

D121 21. Merge Two Sorted Lists

题目链接

21. Merge Two Sorted Lists

题目分析

合并两个有序链表。

思路

逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。

最终代码

<?php
/**
 * Definition for a singly-linked list.
 * class ListNode {
 *     public $val = 0;
 *     public $next = null;
 *     function __construct($val) { $this->val = $val; }
 * }
 */
class Solution{
	private $vals = [];
    function mergeTwoLists($l1, $l2) {
        $this->iterate($l1, $l2);
        $root = $node = NULL;
        if($this->vals){
            $root = $node = new ListNode(array_pop($this->vals));
        }
        while(!empty($this->vals)){
            $node->next = new ListNode(array_pop($this->vals));
            $node = $node->next;
        }
        return $root;
    }

    function iterate($l1, $l2){
        if(!is_null($l1) && !is_null($l2)){
            if($l1->val<=$l2->val){
                array_unshift($this->vals, $l1->val);
                $l1 = $l1->next;
            }
            else{
                array_unshift($this->vals, $l2->val);
                $l2 = $l2->next;
            }
        }
        else if(!is_null($l1)){
            array_unshift($this->vals,$l1->val);
            $l1 = $l1->next;
        }
        else if(!is_null($l2)){
            array_unshift($this->vals,$l2->val);
            $l2 = $l2->next;
        }
        else if (is_null($l1) && is_null($l2)){
            return;
        }
        $this->iterate($l1, $l2);
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。

© 著作权归作者所有

skys215
粉丝 11
博文 122
码字总数 36485
作品 0
深圳
后端工程师
私信 提问
LeetCode 攻略 - 2019 年 7 月上半月汇总

Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 14:13:38 一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 汇总  3.1 LeetCode 已攻略  3.2...

jsliang
2019/07/15
0
0
LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)

Create by jsliang on 2019-06-05 08:37:00 Recently revised in 2019-06-05 17:31:37 为方便小伙伴们的查看,欢迎切换到不同地址~ 文档库 LeetCode 系列 GitHub 地址 文档库 LeetCode 系列 ...

jsliang
2019/06/06
0
0
LeetCode 攻略 - 2019 年 6 月汇总

Create by jsliang on 2019-06-28 09:03:23 Recently revised in 2019-06-28 14:56:36 一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 汇总  3.1 已攻略  3.2 Function ...

jsliang
2019/06/28
0
0
LeetCode目录。

按照LeetCode的Tags来区分的话,目前共有34个Tag,只列出已经解决的题,各分类中按照题目编号排序: Linked List。 Solved:21/28 Array。

Leafage_M
2017/11/21
0
0
LeetCode 21. 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. Example: Input: ......

flowingfog
2018/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

每天AC系列(六):有效的括号

1 题目 LeetCode第20题,这题比较简单,匹配括号. 2 栈 这是栈的典型应用,括号匹配,当然不需要直接使用栈,使用一个StringBuilder即可: if(s.isEmpty()) return true;char a = s.charAt(0);...

Blueeeeeee
今天
27
0
Spring AOP-06-切入点类型

切入点是匹配连接点的拦截规则。之前使用的是注解@Pointcut,该注解是AspectJ中的。除了这个注解之外,Spring也提供了其他一些切入点类型: • 静态方法切入点StaticMethodMatcherPointcut •...

moon888
昨天
90
0
Class Loaders in Java

1. Introduction to Class Loaders Class loaders are responsible for loading Java classes during runtime dynamically to the JVM (Java Virtual Machine). Also, they are part of the ......

Ciet
昨天
96
0
以Lazada为例,看电商系统架构演进

什么是Lazada? Lazada 2012年成立于新加坡,是东南亚第一电商,2016年阿里投资10亿美金,2017年完成对lazada的收购。 业务模式上Lazada更偏重自营,类似于亚马逊,自建仓储和为商家提供服务...

春哥大魔王的博客
昨天
62
0
【自用】 Flutter Timer 简单用法

dart: void _startTime() async { _timer = Timer(Duration(seconds: sec), () { fun(xxx,yyy,zzz); }); } @override void dispose() { _timer.cancel()......

Tensor丨思悟
昨天
65
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部