博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode学习笔记(两数相加)
阅读量:4049 次
发布时间:2019-05-25

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

在这里插入图片描述

思考及遇到的几个问题:

1、关于头结点,一般会给返回的链表变量,设置一个头节点。再将相加的节点值链接上去。因此返回时代码如下,可以省略掉头结点。

return out->next;

2、关于链表插入,这里使用的是尾插法,因此引入另外一个变量如下。让该变量始终指向返回链表的最后一个节点,并在初始化时令其等于返回变量,方便循环插入。

ListNode *out=new ListNode(0), *L;L = out;

3、关于解题思路,将短链表的空位补0,再与另一个同位相加,并设置进位标志。当最后一位还是有进位时,注意新增节点。

在这里插入图片描述
解题代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {
public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *out=new ListNode(0), *L; L = out; int sign=0; ListNode *temp; while(l1!=nullptr||l2!=nullptr){
int x = l1==nullptr?0:l1->val; int y = l2==nullptr?0:l2->val; temp =new ListNode((x+y+sign)%10); L->next=temp; L=temp; if(x+y+sign>=10) sign=1; else sign=0; if(l1!=nullptr) l1 = l1->next; if(l2!=nullptr) l2=l2->next; } if(sign==1){
temp = new ListNode(1); L->next=temp; } return out->next; }};

转载地址:http://jpyci.baihongyu.com/

你可能感兴趣的文章
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>
Android(三)数据存储之XML解析技术
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
Oracle 物化视图
查看>>
PHP那点小事--三元运算符
查看>>
解决国内NPM安装依赖速度慢问题
查看>>