线性表和链表的区别?
线性表包括顺序表和链表,
顺序表:优点 基于数组进行遍历和寻址的时候特别快,访问速度快,搜索能力强
缺点:往顺序表插入或删除一个元素,当前位置的后面元素都要向后移动一位
链表:是无序的, 和顺序表是互相补充的
链表组成:节点
单链表:一个个元素,分成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