美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D121 21. Merge T

Leetcode PHP题解--D121 21. Merge T

作者: skys215 | 来源:发表于2019-12-12 01:48 被阅读0次

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

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

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D121 21. Merge T

        本文链接:https://www.haomeiwen.com/subject/ztlzgctx.html