LeetCode:2. 两数相加
发布时间:
更新时间:
前置声明
LeetCode所有题目版权均归 LeetCode 和 力扣中国 所有本文仅提题解与思路,详情请访问官网查看
O(n)复杂度
按题意来,两个链遍历,取个位,进十位就行了。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode p = new ListNode(0); ListNode cur = p; int pp = 0; while (l1 != null || l2 != null || pp != 0) { int s1 = l1 != null ? l1.val : 0; int s2 = l2 != null ? l2.val : 0; int add = s1 + s2 + pp; pp = add >= 10 ? 1 : 0; add = add >= 10 ? add - 10 : add; cur.next = new ListNode(add); cur = cur.next; if (l1 != null) { l1 = l1.next; } if (l2 != null) { l2 = l2.next; } } return p.next; }}
留言评论