python题目:
建立非空单链表,完成遍历操作,并且计算单链表的长度。
输入格式:
输入数据有多组,每组数据占一行:
每行数字表示单链表的各个结点值(数字个数不会超过100个),以0结束一个
单链表的输入;
例如:123450代表一个长度为5的单链表。
若遇到-1,则结束数据的输入。
输出格式:
每组输出占两行,第一行输出单链表的长度,第二行输出该单链表,每两个结点值之间有""。
2条回答 默认 最新
- 「已注销」 2023-03-15 10:04关注
参考GPT和自己的思路:
好的,针对这个问题,我可以给出以下的解答:
首先,我们需要定义一个节点类来保存单链表结点的信息,同时定义一个单链表类来实现单链表的建立、遍历和长度计算等功能。具体代码如下:
# 定义一个节点类 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next # 定义一个单链表类 class LinkedList: def __init__(self): self.head = None # 建立单链表 def createList(self): nums = input().split() for num in nums: if num == '0': break node = ListNode(int(num)) if not self.head: self.head = node else: cur = self.head while cur.next: cur = cur.next cur.next = node # 遍历单链表 def traverse(self): cur = self.head while cur: print(cur.val, end=' ') cur = cur.next print() # 计算单链表长度 def length(self): cnt = 0 cur = self.head while cur: cnt += 1 cur = cur.next return cnt
然后,我们可以通过以下的代码来测试单链表的建立、遍历和长度计算功能:
while True: lst = LinkedList() try: lst.createList() except: break length = lst.length() print(length) lst.traverse()
这段代码可以持续输入多组单链表,每输入一组单链表就会输出该单链表的长度和遍历结果。当输入-1时,程序结束。
希望这个答复能够帮助到你,如果你还有其他的问题需要解答,可以继续向我提问。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 爱快路由器端口更改错误导致无法访问
- ¥20 安装catkin时遇到了如下问题请问该如何解决呢
- ¥15 VAE模型如何输出结果
- ¥15 编译python程序为pyd文件报错:{"source code string cannot contain null bytes"
- ¥20 关于#r语言#的问题:广义加行模型拟合曲线后如何求拐点
- ¥15 fluent设置了自动保存后,会有几个时间点不保存
- ¥20 激光照射到四象线探测器,通过液晶屏显示X、Y值
- ¥50 数据库开发问题求解答
- ¥15 安装anaconda时报错
- ¥15 小程序有个导出到插件方式,我是在分包下引入的插件,这个export的路径对吗,我看官方文档上写的是相对路径