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

若感觉本文章对你有用,欢送用爱发电赞助。