方法一: 顺序删除
算法思想:
通过双层循环直接在链表上删除。外层循环用一个指针从第一个节点开始遍历整个链表,然后内层循环用另一个指针遍历其余节点与外层循环指针所指的节点的数据进行对比,若是相同则删除
性能分析:
该算法的时间复杂度为o(n*2),空间复杂度为o(n)
#方法一:顺序删除
class LNode(object):
def __init__(self, item):
self.data = item
self.next = None
def removeDup(head):
if head == None or head.next == None:
return
outerCur = head.next
interCur = None
interPre = None
while outerCur != None:
interCur = outerCur.next
interPre = outerCur
while interCur != None:
if outerCur.data == interCur.data:
interPre.next = interCur.next
interCur = interPre.next
else:
interPre = interCur
interCur = interCur.next
outerCur = outerCur.next
if __nam