赞
踩
// 使用虚拟节点 class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(-1); ListNode cur = dummy; int forward = 0; // 进位值 // 1.只有有一条链表不为空,就一直做相加 while (l1 != null || l2 != null){ int value1 = l1 == null ? 0 : l1.val; int value2 = l2 == null ? 0 : l2.val; ListNode node = new ListNode(); int sum = value1 + value2 + forward; forward = sum / 10; node.val = (sum % 10); cur.next = node; cur = cur.next; // 2.如果l1不为空,l1继续 if (l1 != null){ l1 = l1.next; } if (l2 != null){ l2 = l2.next; } } // 3. 如果最后进位不为0 if (forward != 0){ ListNode node = new ListNode(forward); cur.next = node; } return dummy.next; } }```
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。