两数相加:
PHP 44ms:
其实可以用字符串的方式做。本解法仿照官方解法:
/**
* Definition for a singly-linked list.
* class ListNode {
* public $val = 0;
* public $next = null;
* function __construct($val) { $this->val = $val; }
* }
*/
class Solution {
function addTwoNumbers($l1, $l2) {
$dummyHead = new ListNode(0);
$curr = $dummyHead;
$p = $l1;
$q = $l2;
$carry = 0;
while($p != null || $q != null){
$x = ($p != null) ? $p->val : 0;
$y = ($q != null) ? $q->val : 0;
$num = $x + $y + $carry;
$carry = (int)($num / 10);
$curr->next = new ListNode($num % 10); //不明白,为什么直接复制就会输出超出限制
$curr = $curr->next;
if($p != null) $p = $p->next;
if($q != null) $q = $q->next;
}
if($carry == 1){
$curr->next->val = $carry;
}
return $dummyHead->next;
}
}