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

skys215

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

42 声望
26 粉丝
0 条评论