题目链接二、二数相加难度:$\color{#00965e}{medium}$知识点一、数据结构单向链表数据结构基础,这里不赘述2.链表尾插入法C单链表头插入法/尾插入法/删除指定值节点解决方案简单累加注意进位使用head记录头节点,head->next是解题需要的head节点复杂度分析时间复杂度:O(max(m,n)),其中m,nm,n是两个链表的长度。我们要遍历两个链表的所有位置,处理每个位置只需要O(1)O(1)的时间。空间复杂度:O(max(m,n)),答案链表的长度至多为较长链表的长度+1+1。下面是PHP语言实现~~~~/***单向链表的定义。*类ListNode{*public$val=0;*public$next=null;*函数__construct($val=0,$next=null){*$this->val=$val;*$this->next=$next;*}*}*/classSolution{/***@paramListNode$l1*@paramListNode$l2*@returnListNode*/functionaddTwoNumbers($l1,$l2){$carry=0;$tmp_int=0;$head=new列表节点();$end=new列表节点();$结束=$头;//$head=$end;//其实和上面一样,这里的head是保存头节点while($l1!=NULL||$l2!=NULL||$carry>0){if($l1!=NULL){$tmp_int+=$l1->val;$l1=$l1->下一个;}if($l2!=NULL){$tmp_int+=$l2->val;$l2=$l2->下一个;}$tmp_int+=$进位;$节点=新列表节点();$node->val=$tmp_int%10;$carry=floor($tmp_int/10);$tmp_int=0;$结束->下一个=$节点;$结束=$节点;}返回$head->next;}}
