列表反向组成数字相加,并输出数组反向组成列表

# Definition for singly-linked list.
#在节点ListNode定义中,定义为节点为结构变量。
#节点存储了两个变量:value 和 next。value 是这个节点的值,next 是指向下一节点的指针,当 next 为空指针时,这个节点是链表的最后一个节点。
#注意注意val只代表当前指针的值,比如p->val表示p指针的指向的值;而p->next表示链表下一个节点,也是一个指针。
#构造函数包含两个参数 _value 和 _next ,分别用来给节点赋值和指定下一节点
class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = next
class Solution:def listnode_reversal(self,head:ListNode)->ListNode:print("开始反转")# head头节点,判断头节点是否为空,或者是否只存在一个节点if (head == None or head.next == None):return head;# 创建一个节点d = ListNode(-1)# 对于头节点来说相当于前面加了一个空的节点d.next = head# 定义前一节点指针,当前节点指针,辅助指针(后一节点指针)# pre节点一直都没有变pre = dcur = head# 让链表结构反转while (cur != None and cur.next != None):tmp = cur.next  # 用于保存当前节点指针cur的后一节点指针cur.next = tmp.next  # 更新cur指针tmp.next = pre.next  # 将当前节点指针cur后一节点的指针指向cur(即指针指向顺序颠倒)pre.next = tmp  # 更新pre指针return d.nextdef listnode_to_number(self,head)->int:if (head == None or head.next == None):return 0;# 计数sum = 1#数字resultnumber = 0while head != None:resultnumber = resultnumber + head.val * (10 ** sum)print("相加%d" % (resultnumber))sum = sum + 1head = head.nextreturn resultnumberdef addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:#反转列表l1 = self.listnode_reversal(l1)l2 = self.listnode_reversal(l2)#返回列表组成的数字resultl1 = self.listnode_to_number(l1)resultl2 = self.listnode_to_number(l2)print("l1倒叙组成的数字为%d"%(resultl1))print("l2倒叙组成的数字为%d" % (resultl2))resultsum = resultl1 + resultl2print("相加数字为%d" % (resultsum))#存放结果类型resultlistnodehead = ListNode(0)first_pointer = resultlistnodehead#结果的字符串类型strresult = str(resultsum)for k in strresult[::-1]:newnode = ListNode(int(k))resultlistnodehead.next = newnoderesultlistnodehead = newnodeprint(first_pointer.next.val)print(first_pointer.next.next.val)print(first_pointer.next.next.next.val)print(first_pointer.next.next.next.next.val)print(first_pointer.next.next.next.next.next.val)return first_pointer.nextl1 = ListNode(0);
l1_1 = ListNode(1);
l1.next = l1_1;
l1_2 = ListNode(2);
l1_1.next = l1_2;
l1_3 = ListNode(3);
l1_2.next = l1_3;
l1_4 = ListNode(4);
l1_3.next = l1_4;l2 = ListNode(0);
l2_1 = ListNode(1);
l2.next = l2_1;
l2_2 = ListNode(2);
l2_1.next = l2_2;
l2_3 = ListNode(3);
l2_2.next = l2_3;
l2_4 = ListNode(4);
l2_3.next = l2_4;
S = Solution()
print(S.addTwoNumbers(l1,l2))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公众号jdk 获取手机号_如何获取公众号推文封面图

曾经有一张好看的图片摆在我的眼前,我却没能保存,等到失去的时候我才后悔莫及。如果上天能够给我一个再来一次的机会,我会对那张图片说三个字:我,要,你……现在大部分使用智能手机的小伙伴们,一…

container_of深入理解

container_of在linux头文件kernel.h中定义,如下: 14#ifndef offsetof15#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)16#endif1718#ifndef container_of19/**20 * container_of - cast a member of a structure out to the co…

正在读取软件包列表... 有错误!

正在读取软件包列表... 有错误!E: Encountered a section with no Package: headerE: Problem with MergeList /var/lib/apt/lists/cn.archive.ubuntu.com_ubuntu_dists_natty_main_i18n_Translation-enE: 无法解析或打开软件包的列表或是状态文件。问题&#xff1a…

2021-10-19

下载的工具箱 找到下载工具箱位置 打开工具箱属性 出现错误1 无法启动配置 RasterCommander.ImageServer 解决方法

python自动控制库_Python最为神奇的库,可控制你的鼠标键盘自动运行!

Python最为神奇的库,可控制你的鼠标键盘自动运行!这个库让你可以控制和监控输入设备。喜欢我还有更多干货入门知识,来公众号『程序员中文社区』聊聊吧。Python最为神奇的库,可控制你的鼠标键盘自动运行!对于每一种输入…

iframe 自适应高度 跨域

window.navigator.Allframesnull;window.navigator.Allframes { iframe1: window }; //根据页面name属性查找到子页面所在Ifame对象 window.navigator.getFrameByNamefunction(oName){ return this.Allframes[oName] }; //将一个Iframe对象注册到window.navigator.Al…

【转】Windows服务调试技巧

关于调试windows service, 其实这是一个老生常谈的问题了. 通常的处理办法是, 在service运行后, 在调试器中选择attach to process. 然而这种做法也有一定的局限性, 例如在service启动时的OnStart事件中的代码, 基本上很难调试. 往往当attach到我们的service的时候, 这部分代码…

visual studio 没有属性页_驯龙物语10月14日更新|新增快捷购买页签

更新公告大家好,我是小白龙,很高兴又与大家见面啦!维利克洛大陆又迎来了新内容,守护者们要仔细阅读看到最后喔!更新时间本次更新于10月14日6:00-7:00进行,视更新进度可能提前开服或顺延,各位守护…

JDK1.6

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。 java环境变量配置: 如果是Window…

AE开发右键缩放至图层

添加 右键的控件 将控件添加至axtoccontrol 双击进入点击事件 private void 缩放至图层ToolStripMenuItem_Click(object sender, EventArgs e){axMapControl1.ActiveView.FullExtent = m_Layer.AreaOfInterest;axMapControl1.ActiveView.Refresh();axTOCControl1.Update();}…

快速幂取余

快速幂取模算法,留着以后慢慢研究 long long modExp(long long a,long long b,long long n){ long long t,y; t 1; y a; while(b){ if(b % 2) t t * y % n; y y * y % n; b >> 1; } return t;} 转载于:https:/…

nginx源码学习资源

nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源。 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的。 看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码。 现在你最希…

C#打开文件和文件夹

打开文件夹 private void buttonX2_Click(object sender, EventArgs e){//输出文件路径FolderBrowserDialog dialog new FolderBrowserDialog();//提示用户打开文件窗体dialog.Description "请选择文件路径";if (dialog.ShowDialog() DialogResult.OK){textBoxsav…

通过JavaScript操作HTML中select标签

添加: Js代码1.function selectChange() 2.{ 3. var seldocument.getElementById("select1"); 4. Option option new Option("Text","Value"); 5. sel.add(option); 6.} function selectChange(){ var seldocument.get…

标签机二次开发

1. BPLA_OpenComEx("com1",38400,1,1000) 打开串口 2. BPLA_Set(2,0,1) 设置打印机基本参数,如果设置出纸方式为“撕离”,那么需要第3.1步,如果设置出纸方式为“回卷”,需要第3.2步 如果打印机有碳带,需要设…

动漫的python语言代码大全_下载动漫壁纸-Python代码

本帖最后由 我心她有丶 于 2020-4-16 19:28 编辑前段时间在论坛找到一个下载动漫壁纸的软件,还挺好用的,这几天突然用一下,下载不出图片,下载的一片白,然后分析了下他的软件,得到了一个地址: ht…

安装包卸载时如何删除安装时写在系统环境变量中的内容

在用InstallShield制作安装包时,有时我们会在脚本中通过操作注册表,配置系统环境变量,比如在Path中追加,但卸载时如何清除追加的路径变量,一直有些模糊。 今天受网友启发,在InstallShield的帮助文档中找到了…

AE点击按钮添加栅格

private void buttonX3_Click(object sender, EventArgs e){OpenFileDialog pOpenFileDialog = new OpenFileDialog();pOpenFileDialog.CheckFileExists = true;pOpenFileDialog.Title = "添加栅格文件";pOpenFileDialog.Filter = "栅格数据(*.tiff;*.tif;*.jpe…