您的位置:首页 > 其它

Leetcode(2)之两数相加

2019-12-30 16:10 615 查看

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

题目描述:

解题思路:

采取进位思想,l1和l2从首结点起依次相加,如果有一个链表结点不足了就用0代替,如果相加结果大于10保留1为进位代入下一次的结点计算,如果l1,l2所有结点计算完之后还有进位就新增一个值为进位值的结点。

代码:

public ListNode AddTwoNumbers(ListNode l1, ListNode l2)
{
ListNode dummyHead = new ListNode(0);
ListNode p = l1;
ListNode q = l2;
ListNode current = dummyHead;
int carry = 0;
while (p != null || q != null)
{
int a = p != null ? p.val : 0;
int b = q != null ? q.val : 0;
int sum = a + b + carry;
carry = sum / 10;
current.next = new ListNode(sum % 10);
current = current.next;
p = p != null ? p.next : null;
q = q != null ? q.next : null;
}
if (carry > 0)
current.next = new ListNode(carry);
return dummyHead.next;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: