leetcode(List)---2.两数相加
1,题目: 2,思路: (1)首先建一个新的链表,用来存放两数之和 (2)定义一个满十进一的数num (3)在循环里,按照ll1和l2 来计算两个数之和sum (4)对于这个数sum计算其是否是满十,满十的话,取十位数给num,个位数就是新链表的结果 (5)然后,l1和l2 的指针往后移,在循环计算即可。
3,代码:
class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { int num = 0;//定义满十进一的数 ListNode proNode = new ListNode(0);//定义一个listNode,作为链表头 ListNode currentNode = new ListNode(0);//定义一个listNode,接受两数的和 proNode.next = currentNode;//先链接两个Node do { int sum = (l1 != null ? l1.val : 0) + (l2 != null ? l2.val : 0) + num;//两数相加 num = sum / 10;//是否满十 int result = sum % 10;//得出个位数 currentNode.val = result; l1 = l1 != null ? l1.next : l1; l2 = l2 != null ? l2.next : l2; if(l1 != null || l2 != null || num != 0) { currentNode.next = new ListNode(0); currentNode = currentNode.next; } }while(l1 != null || l2 != null || num !=0); return proNode.next; } }