zoukankan      html  css  js  c++  java
  • leetcode: Add Two Numbers

    http://oj.leetcode.com/problems/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

    思路

    注意以下两点,其它都简单:

    1. 两个链表长度不一样。
    2. 进位的处理。
     1 class Solution {
     2 public:
     3     void insertNode(ListNode *node, ListNode *&head, ListNode *&tail) {
     4         if (NULL == head) {
     5             head = tail = node;
     6         }
     7         else {
     8             tail->next = node;
     9             tail = node;
    10         }
    11     }
    12 
    13     ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
    14         ListNode *head = NULL, *tail = NULL;
    15         int sum, flag = 0;
    16 
    17         while ((l1 != NULL) || (l2 != NULL)) {
    18             sum = ((l1 != NULL) ? l1->val : 0) + ((l2 != NULL) ? l2->val : 0) + flag;
    19             flag = sum / 10;
    20             insertNode(new ListNode(sum % 10), head, tail);
    21 
    22             l1 = (l1 != NULL) ? l1->next : NULL;
    23             l2 = (l2 != NULL) ? l2->next : NULL;
    24         }
    25 
    26         if (flag > 0) {
    27             insertNode(new ListNode(flag), head, tail);
    28         }
    29 
    30         return head;
    31     }
    32 };
  • 相关阅读:
    JS练习:定时器--背景颜色交替变换
    JS练习:切换图片
    BOM对象和DOM对象
    CSS练习:仿小米官网
    classification
    where does the error come from
    梯度下降
    torch 中各种图像格式转化
    regression
    torch 的包应用
  • 原文地址:https://www.cnblogs.com/panda_lin/p/add_two_numbers.html
Copyright © 2011-2022 走看看