zoukankan      html  css  js  c++  java
  • [LeetCode]-algorithms-Add Two Numbers

    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

    分析:计算两个链表的和

    解法:这道题的关键点在于节点的计算方式:sum = node1 + node2; new_node = sum%10; sum = sum/10;

    public class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
    }

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
      int carry =0;

      ListNode newHead = new ListNode(0);
      ListNode p1 = l1, p2 = l2, p3=newHead;

      while(p1 != null || p2 != null){
        if(p1 != null){
          carry += p1.val;
          p1 = p1.next;
        }

        if(p2 != null){
          carry += p2.val;
          p2 = p2.next;
        }

        p3.next = new ListNode(carry%10);
        p3 = p3.next;
        carry /= 10;
      }

      if(carry==1)
      p3.next=new ListNode(1);

      return newHead.next;
    }

  • 相关阅读:
    BZOJ 3531[Sdoi2014]旅行
    BZOJ4998 星球联盟
    BZOJ2959 长跑
    【北京集训D2T3】tvt
    [Bzoj]5343: [Ctsc2018]混合果汁
    HGOI20190810 省常中互测3
    HGOI20190809 省常中互测2
    HGOI20190808 省常中互测1
    组合排列和组合数 学习笔记
    2-SAT (two-statisfiability) 算法 学习笔记
  • 原文地址:https://www.cnblogs.com/lianliang/p/5327964.html
Copyright © 2011-2022 走看看