标签:list node head return class number inf 它的 设计
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
1.定义链表类
2.创建两个数的链表表示对象
3.传入函数实现相加:每一位相加,设置进位,移到下一位,直到待加链表都为空
1 public class ListNode { 2 int val; 3 ListNode next; 4 5 ListNode(int x) { 6 val = x; 7 } 8 9 } 10 11 public class lkk { 12 public ListNode addTwoNumbers(ListNode l1, ListNode l2) { 13 ListNode dummyHead = new ListNode(0); 14 ListNode p = l1, q = l2, curr = dummyHead; 15 int carry = 0;// 进位表示 16 while (p != null || q != null) { 17 int x = (p != null) ? p.val : 0; 18 int y = (q != null) ? q.val : 0; 19 int sum = carry + x + y;// 每一次每一位的相加的结果,都是位之和再加进位 20 carry = sum / 10;// 储存进位 21 curr.next = new ListNode(sum % 10);// 当前位相加之后的最终表示 22 curr = curr.next; 23 if (p != null) 24 p = p.next; 25 if (q != null) 26 q = q.next; 27 } 28 if (carry > 0) { 29 curr.next = new ListNode(carry); 30 }//相加之后若进位有值则和再添加一位 31 return dummyHead.next;//因为curr是初始为,val为0,数字表示实际从它的下一个节点开始 32 } 33 34 }
1.对链表的考察
2.对整数相加的算法设计的考察:每一位依次相加,有进位
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
标签:list node head return class number inf 它的 设计
原文地址:https://www.cnblogs.com/zclun/p/9961234.html