Leetcode基础刷题之PHP解析(2. Add Two Numbers)
2019-5-13 星期一 开始吧
上一题链接算法之二分查找
题目描述
给定两个非空的链表,它们的位数是按照逆序存储的,并且每个结点存储一个非负整数,将各结点上的两个数字相加返回一个新的链表。
题目分析
这题还需要注意几个情况就是: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
No Comments