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


点赞 取消点赞 收藏 取消收藏

<< 上一篇: Leetcode PHP题解--D59 226. Invert Binary Tree

>> 下一篇: Leetcode PHP题解--D60 824. Goat Latin