crack the code interview 2.4

原创 2013年12月04日 19:32:31

You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in reverse order, such that the 1’s digit is at the head of the list. Write a function that adds the two numbers and returns the sum as a linked list.

这是一个大数加法。有两个链表,每个链表的节点存放的是一个数字,其各位是链表的头节点,最后返回两个链表的和。

//You have two numbers represented by a linked list, where each node contains a single digit. The digits are stored in reverse order, such that the 1’s digit is at the head of the list. Write a function that adds the two numbers and returns the sum as a linked list.

struct LinkNode
{
    LinkNode * next;
    int value;
}

LinkNode * BigAdd(LinkNode * n1, LinkNode * n2)
{
    LinkNode * sum = NULL;
    LinkNode * start = sum;
    
    LinkNode * h1 = n1;
    LinkNode * h2 = n2;
    int pre = 0;
    while (h1 != NULL && h2 != NULL)
    {
        int s = h1->value + h2->value + pre;
        LinkNode * n = new LinkNode(s, NULL);
        if (s >= 10)
        {
            n->value = (s) % 10;
            pre = s - (s/10) * 10;
        }
        if (sum == NULL)
        {
            sum = n;
        }
        else
            sum->next = n;
        h1 = h1->next;
        h2 = h2->next;
    }
    LinkNode * h = NULL;
    if (h1 != NULL)
        h = h1;
    else (h2 != NULL)
        h = h2;

    sum->next = h;
    while (pre != 0)
    {
        int s = pre + h->value;
        if (h != NULL)
        {
            if (s >= 10)
            {
                h->value = s % 10;
                pre = s - (s/10) * 10;
            }
        }
        else
        {
            LinkNode * n = new LinkNode(pre);
            pre = 0;
            h = n;
        }
        h = h->next;
    }
    return start;
}


相关文章推荐

Crack the code interview_Q1.1

题目 实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构) 解决: 首先,我们先简单化问题,假设字符集是ASCII码,由于ASCII码仅...
  • xmj1989
  • xmj1989
  • 2013年09月21日 18:41
  • 407

每天坚持Crack Code(Day 4)

今天头脑涨涨的,所以看书都不想从头往后看,索性挑了一章看~ 首先是了解一下概念问题: C++ vs Java 1.Java runs in a virtual machine. 在虚拟机中运行 ...
  • Lj_Tao
  • Lj_Tao
  • 2013年09月22日 23:04
  • 551

每天坚持Crack Code(Day 1)

打好基本功: Data Structures Algorithms Concepts Linked Lists  Breadth First Search Bit Manipulation...
  • Lj_Tao
  • Lj_Tao
  • 2013年09月17日 15:28
  • 601

crack coding interview

  • 2014年06月11日 08:35
  • 3.61MB
  • 下载

Crack the coding interview (fourth edition)

  • 2013年10月26日 03:16
  • 1.49MB
  • 下载

Cracking coding interview(2.4)单向链表相加

2.4 You have two numbers represented by a linked list, where each node contains a single digit. The ...

interview-code test

  • 2017年08月07日 15:20
  • 49KB
  • 下载

code interview material

  • 2013年02月07日 05:06
  • 240KB
  • 下载

Cracking the Code Interview Chapter Three-- TaylorZhangYuxin's Solusion

This article is my own thinking and analysis when reading the cracking the code interview 6th editio...

Cracking the code interview

  • 2013年09月25日 08:04
  • 2.05MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:crack the code interview 2.4
举报原因:
原因补充:

(最多只允许输入30个字)