关于leetcode:Leetcode-PHP题解D121-21-Merge-Two-Sorted-Lists

31次阅读

共计 932 个字符,预计需要花费 3 分钟才能阅读完成。

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

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

正文完
 0