博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两数之和
阅读量:6487 次
发布时间:2019-06-24

本文共 1626 字,大约阅读时间需要 5 分钟。

 

from :

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807

解答:(C语言)

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {    int flag=0;    int sum=0;    struct ListNode * p;    struct ListNode * p1;    struct ListNode * p2;    p=(struct ListNode* ) malloc (sizeof(struct ListNode));    p2=p;    while(l1!=NULL || l2!=NULL){        /*        处理链表长度不一致的情况        */        int x = (l1!=NULL)?l1->val : 0;        int y = (l2!=NULL)?l2->val : 0;        sum = x + y + flag;        p1=(struct ListNode* ) malloc (sizeof(struct ListNode));        p1->val = sum%10;        p1->next = NULL;        flag = (sum>=10)?1:0;        p->next = p1;        p = p->next;        if(l2!=NULL){            l2=l2->next;        }            if(l1!=NULL){            l1=l1->next;         }        }    /*    *处理最后进位情况            l1=[9,9]            l2=[1]        求和运算最后可能出现额外的进位,这一点很容易被遗忘    */    if(flag>0){        p1 = (struct ListNode* ) malloc (sizeof(struct ListNode));        p1->val = flag;        p1->next = NULL;        p->next = p1;    }    return p2->next;}

遇到的问题:

  • member access within misaligned address 0x000000000031 for type 'struct ListNode', which requires 8 byte alignment
  • 这个问题是在 p1=(struct ListNode* ) malloc (sizeof(struct ListNode)); 开辟空间后,未对p1->next赋值。
  • member access within null pointer of type 'struct ListNode'
  • 这个问题在于未对结构体是否为空进行检查,导致使用结构体属性值的时候报错。

 

转载于:https://www.cnblogs.com/zhuandshao/p/9376311.html

你可能感兴趣的文章
MySQL InnoDB 存储引擎探秘
查看>>
JavaScript数据结构与算法——字典
查看>>
Will it finally: 关于 try/catch 的一些细节
查看>>
别人家的程序员是如何使用 Java 进行 Web 抓取的?
查看>>
攻和防谁更厉害?AI技术在恶意软件检测中的应用和对抗
查看>>
【Leetcode】102. 二叉树的层次遍历
查看>>
全新版本仿网易云音乐来啦
查看>>
比特币——区块链的发展历程
查看>>
天海实业携手海宇勇创签署战略合作协议
查看>>
gen_tcp参数总结
查看>>
vue 服务器端渲染 nuxt.js初探
查看>>
python实现自动抢12306火车票,妈妈再也不用担心我没有车回去了
查看>>
EOSIO 指南(创建开发钱包)
查看>>
教你一个vue小技巧,一般人我不说的
查看>>
JavaScript设计模式之适配器模式
查看>>
requirejs的插件介绍与制作
查看>>
读完这篇,让你真正理解Redis持久化
查看>>
Redis的数据结构及应用场景
查看>>
从零单排学Redis【铂金一】
查看>>
纯css实现手机通讯录
查看>>