python 单链表添加节点_黄哥Python:单链表的尾部插入方法
单链表的尾部插入方法:
1、先判断头结点是不是为None
2、设置一个当前结点node,循环下一个结点,当node.next 为None 时,就到尾部,也就是找到插入点了。
请看下面Python 代码。
#!/bin/python3
import math
import os
import random
import re
import sys
class SinglyLinkedListNode:
def __init__(self, node_data):
self.data = node_data
self.next = None
class SinglyLinkedList:
def __init__(self):
self.head = None
def print_singly_linked_list(node, sep, fptr):
while node:
fptr.write(str(node.data))
node = node.next
if node:
fptr.write(sep)
# Complete the insertNodeAtTail function below.
#
# For your reference:
#
# SinglyLinkedListNode:
# int data
# SinglyLinkedListNode next
#
#
def insertNodeAtTail(head, data):
'''黄哥Python培训 黄哥所写'''
if head is None:
head = SinglyLinkedListNode(data)
return head
node = head
while node.next is not None:
node = node.next
node.next = SinglyLinkedListNode(data)
return head
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
llist_count = int(input())
llist = SinglyLinkedList()
for i in range(llist_count):
llist_item = int(input())
llist_head = insertNodeAtTail(llist.head, llist_item)
llist.head = llist_head
print_singly_linked_list(llist.head, '\n', fptr)
fptr.write('\n')
fptr.close()
题目来自Insert a Node at the Tail of a Linked List | HackerRankwww.hackerrank.com黄哥:黄哥Python:提醒要转行当程序员的朋友,学习要分先后主次zhuanlan.zhihu.com黄哥:黄哥Python培训是这样训练学员的zhuanlan.zhihu.com
python 单链表添加节点_黄哥Python:单链表的尾部插入方法相关推荐
- python解奥数题_黄哥Python:Python代码解决一道小学奥数题
有如下小学奥数题: 有180盏亮着的电灯,各有一个拉线开关控制着,现按其顺序编号 1,2,3, ..., 180, 然后将编号为4的倍数的电灯线拉一下,再将 编号为5的倍数的灯线拉一下,最后将编号为6 ...
- python 短进程优先算法_黄哥Python:图深度优先算法(dfs)
深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法.沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的所在边都己被探寻过,搜索将回溯到发现 ...
- python在sql添加数据库_使用Python创建MySQL数据库实现字段动态增加以及动态的插入数据...
应用场景: 我们需要设计一个数据库来保存多个文档中每个文档的关键字.假如我们每个文档字符都超过了1000,取其中出现频率最大的为我们的关键字. 假设每个文档的关键字都超过了300,每一个文件的0-29 ...
- python给视频添加声音_用python批量提取视频中的音频文件
安装MoviePypip3 install MoviePy 安装成功后需要打开MoviePy所在的文件夹C:\Python\Lib\site-packages\moviepy 打开config_def ...
- python的input添加变量_在python中如何定义一个全局变量raw_input() 与 input()的区别...
raw_input和input两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互.但他们的功能不尽相同.下面举两个例子,来说明两者使用上的不同. 例子1Python 2.7.5 ( ...
- python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...
2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...
- mysql动态表单设计与实现_动态表单的数据库结构设计
利用在线编辑器设计的表单,包含输入框,明细表(动态添加行)等需要存储到数据库的信息,现在有三种思路: 1.一个表单对应数据库的一张或多张物理表(主从表),这种设计在很多业务的情况下,其数据库的物理表会 ...
- python 释放链表节点_四种常见链表的实现及时间复杂度分析(Python3版)
四种常见的链表包括:单向链表,单向循环链表,双向链表,双向循环链表. 要实现的链表操作包括 - is_empty() 判断链表是否为空 - length() 求链表长度 - traversing() ...
- python顺序表的实现_数据结构:队列 链表,顺序表和循环顺序表实现(python版)...
链表实现队列: 尾部 添加数据,效率为0(1) 头部 元素的删除和查看,效率也为0(1) 顺序表实现队列: 头部 添加数据,效率为0(n) 尾部 元素的删除和查看,效率也为0(1) 循环顺序表实现队列 ...
最新文章
- 分布式技术追踪 2017年第十二期
- 流行学习、流形学习家族、局部线性嵌入LLE、随机投影(Random Projection)、t-SNE降维及可视化
- CSS HACK:IE6、IE7、IE8、Firefox兼容性问题解决方案
- catia过载属性使用方法_catia简明操作手册
- Yann LeCun:深度学习硬件前瞻
- 百叶窗效果显示图片源码(c#)
- 从0开始配置Win环境下VScode (VScode For C/C++)
- oracle 感叹号,Oracle错误案例:ORA-00922
- 如何在Ubuntu 18.04上安装OpenCV
- 《经典书籍推荐》程序员修炼之道
- 眼见不一定为实,电阻、电容和电感的实际等效模型
- 猜数字游戏(c语言实现)
- excel高效之sumproduct()带权重计算 如:绩效
- 题目 1097: 蛇行矩阵 题解
- 蔬菜小程序服务器,生鲜蔬菜同城配送小程序案例分析
- 高并发环境如何有效缓解带宽压力
- 用 Python 生成 CSV 文件
- BZOJ2209 [Jsoi2011]括号序列
- 【每日前端】京东1号店注册——登录页面CSS实现
- jQuery中的Ajax(全)
热门文章
- c语言9999是合法常量吗,只会G代码不会宏程序,都不敢说自己是老师傅!
- Android 修改 SELinux avc 权限的方法
- Android内涵段子评论无限点赞分析与刷赞App[已和谐]
- 马云的五新其实没有哪一个是新的
- linux如何清除硬盘数据,linux操作系统彻底清除硬盘数据方法
- OpenCV形状颜色识别Java,Android
- Postman 导出接口集合,并使用newman工具导出html版本测试用例
- 计算机不同的路由如何共享打印机,不同局域网内电脑如何实现互访实现文件或打印机共享...
- 【程序设计】Linux目录结构
- 多维时序 | MATLAB实现TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)多输入单输出