zoukankan      html  css  js  c++  java
  • leetcode刷题2-两数之和

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-two-numbers
    因为这里采用的是链表结构 而且是个位上的数字在表头所以比较好处理

    思路:从前向后进行遍历两个链表 以长链表为准 为空的时候补0 另外就是一个进位的问题 每次相加的时候需要考虑进位问题 最后一个问题就是 如果最后一位相加后还是有进位

    那么我们需要增加一个新的节点 添加在尾部

    代码实现

    class Solution {
        public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
            int sum = 0;
    		int carry = 0;
    		ListNode newHead = new ListNode(-1);
    		ListNode pre = newHead;
    		while(l1!=null || l2!=null){
    			int x = l1==null?0:l1.val;
    			int y = l2==null?0:l2.val;
    			sum = x+y+carry;
    			int temp = sum%10;
    			carry = sum/10;
    			pre.next = new ListNode(temp);
                if(l1!=null){
                    l1 = l1.next;
                }
    			if(l2!=null){
                    l2 = l2.next;
                }
    			
    			pre = pre.next;
    		}
    		if(carry==1){
    			pre.next = new ListNode(1);
    		}
    		return newHead.next;
        }
    }
    

     

  • 相关阅读:
    【HDU 1060】Leftmost Digit
    【HLG 1572】表达式计算(后缀表达式+栈的应用)
    Vue CLI3 开启gzip压缩
    html元素呼吸效果
    前端实现在线预览pdf、word、xls、ppt等文件
    devServer proxy的使用
    7个基础js函数
    前端初中高级面试题1
    模仿头条导航的左右滚动效果
    angular基本入门教程
  • 原文地址:https://www.cnblogs.com/phantom576/p/12723889.html
Copyright © 2011-2022 走看看