class Node():
def __init__(self,val,nxt):
self.val=val
self.nxt=nxt
def __str__(self):
return str(self.val)
def __repr__(self):
return 'value is '+str(self.val)
class LinkedList():
def __init__(self,lst=None):
self.head=None
if lst!=None:
for val in lst:
self.add(val)
def add(self,val):
self.head=Node(val,self.head)
def remove(self,value):
m=self.head
if m.val==value:
self.head=m.nxt
else:
while m!=None:
if m.val==value:
n.nxt=f
break
else:
n=m
m=m.nxt
if m==None:
print('不存在')
else:
f=m.nxt
def remove1(self,value):
m=self.head
if m==None:
return None
if m.val==value:
self.head=m.nxt
while m.nxt != None and m.nxt.val != value:
m=m.nxt
if m.nxt!=None:
m.nxt=m.nxt.nxt
def insert(self,value,i):
count=2
b=Node(value,None)
t=self.head
if i==1:
self.add(value)
else:
while count!=i:
t=t.nxt
count+=1
c=t.nxt
t.nxt=b
b.nxt=c
def insert1(self,val,idx):
if idx == 0 or self.isEmpty():
self.add(val)
elif idx >len(self):
p=self.head
print('loop: ',idx)
while p.nxt!=None:
p=p.nxt
p.nxt=Node(val,None)
else:
p=self.head
while p!= None and idx >1:
idx-=1
p=p.nxt
p.nxt=Node(val,p.nxt)
def index(self,value):
p=self.head
idx=0
while p!=None:
if p.val==val:
return idx
idx+=1
p=p.nxt
else:
return -1
def isEmpty(self):
return self.head==None
def __str__(self):
p=self.head
s='->'
while p!=None:
s+=str(p.val)+'->'
p=p.nxt
s+='None'
return s
def __len__(self):
p=self.head
l=0
while p!=None:
p=p.nxt
l+=1
return l
def __init__(self,val,nxt):
self.val=val
self.nxt=nxt
def __str__(self):
return str(self.val)
def __repr__(self):
return 'value is '+str(self.val)
class LinkedList():
def __init__(self,lst=None):
self.head=None
if lst!=None:
for val in lst:
self.add(val)
def add(self,val):
self.head=Node(val,self.head)
def remove(self,value):
m=self.head
if m.val==value:
self.head=m.nxt
else:
while m!=None:
if m.val==value:
n.nxt=f
break
else:
n=m
m=m.nxt
if m==None:
print('不存在')
else:
f=m.nxt
def remove1(self,value):
m=self.head
if m==None:
return None
if m.val==value:
self.head=m.nxt
while m.nxt != None and m.nxt.val != value:
m=m.nxt
if m.nxt!=None:
m.nxt=m.nxt.nxt
def insert(self,value,i):
count=2
b=Node(value,None)
t=self.head
if i==1:
self.add(value)
else:
while count!=i:
t=t.nxt
count+=1
c=t.nxt
t.nxt=b
b.nxt=c
def insert1(self,val,idx):
if idx == 0 or self.isEmpty():
self.add(val)
elif idx >len(self):
p=self.head
print('loop: ',idx)
while p.nxt!=None:
p=p.nxt
p.nxt=Node(val,None)
else:
p=self.head
while p!= None and idx >1:
idx-=1
p=p.nxt
p.nxt=Node(val,p.nxt)
def index(self,value):
p=self.head
idx=0
while p!=None:
if p.val==val:
return idx
idx+=1
p=p.nxt
else:
return -1
def isEmpty(self):
return self.head==None
def __str__(self):
p=self.head
s='->'
while p!=None:
s+=str(p.val)+'->'
p=p.nxt
s+='None'
return s
def __len__(self):
p=self.head
l=0
while p!=None:
p=p.nxt
l+=1
return l