题目描述: 输入一个链表,输出该链表中倒数第k个结点
class Node(object): def __init__(self,val): # 存放结点的数据域 self.val = val # 前驱指针 self.prev = None # 后继指针 self.next = Noneclass DoublelinkedList(object): def __init__(self): self.head = None self.tail = None # 判断双链表是否为空 def empty(self): return self.head is None # 计算链表的长度 def length(self): # size用来计算链表长度 size = 0 # 声明cur指针,用来遍历链表 cur = self.head # 当cur指针没有指向空 while cur != None: # 链表长度加1 size += 1 # cur指针指向当前节点的后继节点 # print(str(size)+" "+str(cur.val)) cur = cur.next return size # 遍历输出链表中的值 def traversal(self): cur = self.head while cur != None: print(cur.val,end=" ") cur = cur.next print() # 尾插法 def append(self,val): newNode = Node(val) if self.empty(): self.head = newNode self.tail = newNode else: self.tail.next = newNode newNode.prev = self.tail self.tail = newNode # 输出从倒数第k个结点到最后的所有结点 def getKthFromEnd(self,k): # 声明cur指针,用来遍历链表 cur = self.head #获取链表总长度 kdx = self.length() #逆向思维寻找倒数第k个结点 dst = kdx-k #cur找到k位置与头的结点 for i in range(dst): for i in range(1): self.prev = None cur = cur.next #设为空 cur.prev = None #重新定义head(头结点) self.head = cur #遍历输出链表中的值 self.traversal()if __name__ == "__main__": li = DoublelinkedList() li.append('a') li.append('b') li.append('c') li.append('d') li.append('e') print("原链表:",end="") li.traversal() print("输出后3个结点:",end="") li.getKthFromEnd(3) print("输出后2个结点:",end="") li.getKthFromEnd(2)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
总结以上是内存溢出为你收集整理的python-数据结构-输出从倒数第k个结点到最后的所有结点全部内容,希望文章能够帮你解决python-数据结构-输出从倒数第k个结点到最后的所有结点所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)