Leetcode基础刷题之PHP解析(2. Add Two Numbers)

2019-5-13 期一  

算法之二分查找

f6c187409be49f1a8f75674373bec6ad.png

给定两个非空的链表,它们的位数是按照逆序存储的,并且每个结点存储一个非负整数,将各结点上的两个数字相加返回一个新的链表。

这题还需要注意几个情况就是:1.两个链表的长度不一样的.2.如果某两个结点相加大于10时取个位数,并且进一位。这也就能看出题中最后一个结点值是8,4+6进了一位。这道题可以用递归来解。

 /**
 * Definition for a singly-linked list.
 * class ListNode {
 *     public $val = 0;
 *     public $next = null;
 *     function __construct($val) { $this->val = $val; }
 * }
 */
class Solution {

   private $res=0;
  
    /**
     * @param ListNode $l1
     * @param ListNode $l2
     * @return ListNode
     */
    function addTwoNumbers($l1, $l2) {
        $node=new ListNode($this->res + $l1->val + $l2->val);
        if($this->res=intval($node->val >9)){
            $node->val -=10;
        }
    $node->next=(!$this->res && is_null($l1->next) && is_null($l2->next) )?null:$this->addTwoNumbers($l1->next,$l2->next);
        return $node;
    }
}

Github整理地址:https://github.com/wuqinqiang/leetcode-php

吴亲库里 has written 57 articles

情绪只是对自己无能的愤怒

积分:2807 等级:P7 职业:php 城市:杭州

0 条回复

登录后才能进行评论,立即登录?