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;
}


cracking the coding interview 中文版 (程序员面试金典)

 转自:CTCI面试系列——谷歌面试官经典作品 | 快课网 谷歌面试官经典作品(CTCI)目录 1.1 判断一个字符串中的字符是否唯一 1.2 字符串翻转 1.3 去除字符串中重复字符 ...
  • hnuzengchao
  • hnuzengchao
  • 2014年10月19日 11:32
  • 24021

笔记摘录——Cracking the code interview

纸上写代码 简历:对你参与的任何项目或者工作做一个总结,并阐述最难的部分以及最有趣的部分 。 不要记忆解决方案:不是说让你不要记忆,而是要想清楚它的思路,也就不需要记忆了...
  • maoxunxing
  • maoxunxing
  • 2014年11月12日 23:42
  • 2609

经典算法题目:Cracking the coding interview 问题与解答

Cracking the coding interview--问题与解答 March 14, 2013 作者:Hawstein 出处:http://hawstein.com/posts/ctci-...
  • wangbaochu
  • wangbaochu
  • 2016年10月31日 00:39
  • 1628

cracking the code interview——c++实现

本系列是我对cracking the code interviews的c++实现和学习,不足之处欢迎批评指正。 题目:实现一个算法,判断其中的字符是否都不相同。如果不能用数据结构,又该如何实现? ...
  • qq_27225851
  • qq_27225851
  • 2016年07月09日 09:03
  • 253

Cracking the code interview总结

1. 第八章:递归 程序调用自己称为递归。把大问题化成与自身相类似的小问题。递归需要边界条件,递归前进段,递归返回段。当边界条件不满足时,递归前进,当边界条件满足时,递归返回。空间成本&时间...
  • sunflower606
  • sunflower606
  • 2016年04月14日 14:09
  • 442

Cracking the Coding Interview 150题(一)

1、数组与字符串1.1 实现一个算法,确定一个字符串的所有字符是否全都不同。假设不允许使用额外的数据结构,又该如何处理?1.2 用C或C++实现void reverse(char* str)函数,即反...
  • lisong694767315
  • lisong694767315
  • 2015年03月24日 23:16
  • 2111

Cracking the coding interview(原版)

转自:Hawstein的Cracking the coding interview--问题与解答
  • u012564690
  • u012564690
  • 2014年07月01日 11:51
  • 3995

crack the code interview 4.6

Design an algorithm and write code to find the first common ancestor of two nodes in a binary tree. ...
  • yfdyyy
  • yfdyyy
  • 2014年03月11日 20:06
  • 280

crack the code interview 4.1

//Implement a function to check if a tree is balanced. For the purposes of this question, //a balanc...
  • yfdyyy
  • yfdyyy
  • 2013年12月17日 22:16
  • 450

crack the code interview 1.8

Assume you have a method isSubstring which checks if one word is a substring of another. Given two s...
  • yfdyyy
  • yfdyyy
  • 2013年12月04日 17:31
  • 355
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:crack the code interview 2.4
举报原因:
原因补充:

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