python 数据结构之链表及常见面试题(找链表的中间节点、是否带环

线性表和链表的区别?

线性表包括顺序表和链表,
顺序表:优点 基于数组进行遍历和寻址的时候特别快,访问速度快,搜索能力强
缺点:往顺序表插入或删除一个元素,当前位置的后面元素都要向后移动一位

链表:是无序的, 和顺序表是互相补充的

链表组成:节点
单链表:一个个元素,分成2部分,1个数据域,1个指针域指向下一个节点,最后一个节点指向None值
循环链表: 最后一个节点指向 头节点

题目:
1、查找链表的中间节点:
思路:设定快慢指针,快指针一次走2步,慢指针一次走一步,当快指针走到尾部,慢指针所指向的位置就是中间节点:

#如果长度为偶数,则有两个中间结点,则返回第二个中间结点
class Node:    
	def __init__(self,data,next=None):        
	self.data = data        
	self.next = next
	
class Solution:    
	def middleNode(self, head):        
		if head is None
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值