【LeetCode】Add Two Numbers

来源:互联网 发布:生命一号 知乎 编辑:程序博客网 时间:2024/06/13 04:42

    • 题目描述
    • 问题分析
    • 代码
    • 总结
    • 个人声明

题目描述

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

问题分析

这是一个简单的数字相加,主要边界条件和进位就行

代码

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {        ListNode res = new ListNode(0);        ListNode head=res;        int flag=0;        int carry=0;        while (l1!=null || l2!=null)        {            int s=0;            if(l1!=null)            {                s=l1.val;                l1=l1.next;            }            if(l2!=null)            {                s+=l2.val;                l2=l2.next;            }            s+=carry;            if(flag==0)            {                res.val=s%10;                flag=1;            }            else            {                res.next=new ListNode(s%10);                res=res.next;            }            if(s>=10)            {                carry=1;            }            else            {                carry=0;            }        }        if(carry==1)        {            res.next=new ListNode(1);        }        return head;         }}

总结

这个问题并不是很难,注意一些边界条件还是很容易的

个人声明

本文章均为原创,转载请说明出处,谢谢
个人说明

本人对编程有很大兴趣,希望跟大家一起交流
欢迎访问个人论坛:www.dabenmo.com
如有任何问题请邮件:jianxiawzx@126.com

0 0
原创粉丝点击