主要考察对链表的操作,对链表这种数据结构的遍历、增、删等操作应该熟练。 1classSolution {2public:3ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {4ListNode *res =newListNode(-1);5ListNode *cur =res;6intcarry =0;7while(l1 ||l2) {8int
publicclassSolution { publicListNode addTwoNumbers(ListNode l1, ListNode l2) { //如果给出就为空,则直接返回另外一个链表 if(l1 ==null)returnl2; if(l2 ==null)returnl1; intflag =0;//存放进位信息,但是并不是处理最后的进位标志 //构造返回结果的第一个节点 ListNode result =newListNode((l1.val ...
classSolution { public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { intcarryBit = 0; ListNode tmpHead(0), *res = &tmpHead; while(l1 && l2) { l1->val += (l2->val + carryBit); carryBit = l1->val / 10; l1->val %= 10; res->next = l1; res = l1; l1 = l1-...
# class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: # 哨兵结点,方便后续处理 head_pre = ListNode(0) # 结果链表的尾结点,方便...
1classSolution {2public:3ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {4ListNode *res =newListNode(-1);5ListNode *cur =res;6intcarry =0;7while(l1 ||l2) {8intn1 = l1 ? l1->val :0;9intn2 = l2 ? l2->val :0;10intsum = n1 + n2 +carry;11carry = sum /10;12cur-...
classSolution(object):defaddTwoNumbers(self,l1,l2):""":type l1: ListNode:type l2: ListNode:rtype: ListNode"""carry=0cur=dummy=ListNode(0)#遍历l1, l2 链表,并依次赋值给cur 节点whilel1orl2:ifl1andl2:ifl1.val+l2.val+carry>=10:cur.next=ListNode((l1.val+l2.val+carry)%10)carry=1els...
3 输入与输出:/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { }};4 解决思路:从表头开始相加,记录每次相加...
Leetcode Add two numbers,#include<iostream>usingnamespacestd;structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){}};classSolution{public
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* Head = new ListNode(0); ListNode* Curr = Head; int push = 0; while(l1 || l2){ int n1 = l1 ? l1->val : 0; int n2 = l2 ? l2->val : 0; int sum =n1+n2+push; push = sum/10; ...
publicstaticListNodeaddTwoNumbers(ListNode l1,ListNode l2){// 边界条件判断if(l1==null){returnl2;}elseif(l2==null){returnl1;}ListNode head=newListNode(0);ListNode point=head;int carry=0;while(l1!=null&&l2!=null){int sum=carry+l1.val+l2.val;ListNode rest=newListNode(sum%10);point.next...