首页 技术 正文
技术 2022年11月9日
0 收藏 346 点赞 2,803 浏览 1081 个字

本题目摘自《Python程序员面试算法宝典》,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中。

1.2 如何实现链表的逆序

【华为笔试题】

难度系数:⭐⭐⭐

考察频率:⭐⭐⭐⭐

题目描述:

给定两个单链表, 链表的每个结点代表一位数,计算两个数的和。例如:输入链表(3 -> 1 -> 5)和链表(5 -> 9 -> 2), 输出:8 -> 0 -> 8, 即 513 + 295 = 808,注意个位数在链表头。

方法一:整数相加

把两个单链表的所代表的数字求出来,然后相加完成之后再把结果按照要求存入到一个新的链表中。

class Node:  # 定义一个结点类
def __init__(self, data=None):
self.data = data
self.next = Nonenumber1 = [5, 1, 3]
number2 = [2, 9, 5]
p = q =None
for index in range(-1, -len(number1)-1, -1): # 构造两个链表存放513和295
if index == -1:
num1 = Node(number1[index])
num2 = Node(number2[index])
p = num1
q = num2
continue
p.next = Node(number1[index])
p = p.next
q.next = Node(number2[index])
q = q.next# 方法一:整数相加
def add(number_1, number_2): # 传入的是两链表的第一个结点
p = number_1
q = number_2
n1 = 0 # 用来存放第一个整数
i = 0
while p is not None: # 得到第一个数字的值
n1 += p.data * 10**i
i += 1
p = p.next n2 = 0 # 用来存放第二个整数
i = 0
while q is not None: # 得到第二个数字的值
n2 += q.data * 10**i
i += 1
q = q.next sum = n1 + n2 # 得到两个整数的和
sum_str = str(sum) # 把结果转成字符串
for index in range(-1, -len(sum_str)-1, -1): # 倒序把结果以整型格式存入到链表中
if index == -1: # 第一个数字
head = Node(int(sum_str[index]))
temp = head
continue
temp.next = Node(int(sum_str[index]))
temp = temp.next return head # 返回链表的head# 查看结果
p = add(num1, num2)
while p is not None:
print(p.data, end="\t") # 8 0 8
p = p.next
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291