• 125645

    文章

  • 803

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

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

服了这份高薪指南,涨多少你说了算>>

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);
    }
}

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


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客