电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python/golang 刪除鏈表中的元素

瀏覽:6日期:2022-07-11 11:34:50

先用使用常規方法,兩個指針:

golang實現:

type Node struct { value int next *Node}type Link struct { head *Node tail *Node lenth int}// 向鏈表中添加元素func (link *Link) add(v int) { if link.lenth == 0 { // 當前鏈表是空鏈表 link.head = &Node{v, nil} link.tail = link.head link.lenth = 1 } else { newNond := &Node{v, nil} link.tail.next = newNond link.tail = newNond link.lenth += 1 }}// 刪除鏈表中的元素(雙指針)func (link *Link) remove(v int) { if link.lenth == 0 { fmt.Println('空鏈表,不支持該操作') return } var previous *Node = nil for current := link.head; current != nil; current = current.next { if current.value == v { if current == link.head { // 要刪除的是頭節點link.head = current.next } else if current == link.tail { // 要刪除的是尾節點previous.next = nillink.tail = previous } else { // 要刪除的是中間的節點previous.next = current.next } link.lenth -= 1 break } previous = current }}// 打印鏈表func (link *Link) printList() { if link.lenth == 0 { fmt.Println('空鏈表') return } for cur := link.head; cur != nil; cur = cur.next { fmt.Printf('%d ', cur.value) } fmt.Println()}

python實現:

class Node: def __init__(self, value, next): self.value = value self.next = next def __str__(self): return str(self.value)class Link: def __init__(self): self.head = None self.tail = None self.lenth = 0 # 向鏈表中添加元素 def add(self, v): if self.lenth == 0: # 當前鏈表是空鏈表 self.head = Node(v, None) self.tail = self.head self.lenth = 1 else: new_node = Node(v, None) self.tail.next = new_node self.tail = new_node self.lenth += 1 # 打印鏈表 def print(self): if self.lenth == 0: print(’空鏈表’) return cur = self.head while True: if cur == None:print()break print(cur, end=’ ’) cur = cur.next # 刪除鏈表中的元素 def remove(self, v): if self.lenth == 0: return cur = self.head pre = None while True: if cur.value == v:if cur == self.head: # 要刪除的是頭節點 self.head = cur.nextelif cur == self.tail: # 要刪除的是尾節點 pre.next = None self.tail = preelse: # 要刪除的是中間的節點 pre.next = cur.nextself.lenth -= 1break pre = cur cur = cur.next if cur == None:print('未找到', v)break

只使用使用一個指針實現鏈表的刪除:

python/golang 刪除鏈表中的元素

golang實現:

func (link *Link) remove_with_one_pointer(v int) { if link.lenth == 0 { return } if link.tail.value == v { // 要刪除的節點是尾節點,需特殊處理 if link.lenth == 1 { // 如果鏈表只有一個節點 link.head = nil link.tail = nil } else { //大于一個節點 cur := link.head for ; cur.next.next != nil; cur = cur.next { } //找到尾節點的前一個節點 cur.next = nil link.tail = cur } link.lenth -= 1 return } //要刪除的節點在頭部/中間 的常規情況 for cur := link.head; cur != nil; cur = cur.next { if cur.value == v { cur.value = cur.next.value cur.next = cur.next.next link.lenth -= 1 return } } fmt.Println('未找到', v)}

python實現:

def remove_with_one_pointer(self, v): if self.lenth == 0: return if self.tail.value == v: # 要刪除的節點是尾節點,需特殊處理 if self.lenth == 1: # 如果鏈表只有一個節點 self.head = None self.tail = None else: # 大于一個節點 cur = self.head while True:if cur.next.next is None: # 找到尾節點的前一個節點 breakelse: cur = cur.next cur.next = None self.tail = cur self.lenth -= 1 return # 要刪除的節點在頭部/中間 的常規情況 cur = self.head while True: if cur.value == v: cur.value = cur.next.value cur.next = cur.next.next self.lenth -= 1 break cur = cur.next if cur is None: print(’未找到’, v) break

以上就是python/golang 刪除鏈表中的元素的詳細內容,更多關于python/golang 鏈表的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 牛奶检测仪-乳成分分析仪-北京海谊 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 公交驾校-北京公交驾校欢迎您!| 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 棕刚玉_白刚玉_铝酸钙-锐石新材料| 期货软件-专业期货分析软件下载-云智赢 | 物联网卡_物联网卡购买平台_移动物联网卡办理_移动联通电信流量卡通信模组采购平台? | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 万家财经_财经新闻_在线财经资讯网 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技| 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 苏州西装定制-西服定制厂家-职业装定制厂家-尺品服饰西装定做公司 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 |