算法-链表-两个数相加

在这里插入图片描述
在这里插入图片描述

一位一位的相加

/**
 * 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 result = new ListNode();
        ListNode prev = result;
        Boolean flag = false;
        while (l1 != null || l2 != null) {
    
    
            int sum = 0;
            if (l1 != null) {
    
    
                sum += l1.val;
                l1 = l1.next;
            }
            if (l2 != null) {
    
    
                sum += l2.val;
                l2 = l2.next;
            }
            //进位标志
            if(flag) {
    
    
                sum += 1;
                flag = false;
            }
            if(sum >= 10) {
    
    
                sum = sum % 10;
                flag = true;
            }
            prev.next = new ListNode(sum);
            prev = prev.next;
        }
        if(flag) {
    
    
            prev.next = new ListNode(1);
        }
        return result.next;
        }
}

猜你喜欢

转载自blog.csdn.net/qq_45100361/article/details/113146253