美文网首页
从链表尾部打印链表

从链表尾部打印链表

作者: 嘿嘿_小于同学 | 来源:发表于2017-08-09 17:38 被阅读8次

1、方法一:先将链表逆序,然后在从头遍历
详见http://www.jianshu.com/p/917f96a31098逆序单链表
2、方法二:借助栈,从头遍历单链表,将数据压栈,然后再依次弹出

# 定义一个栈

class SStack(object):
    def __init__(self):
        self.elems = []

    def is_empty(self):
        return self.elems == []

    def push(self, elem):
        self.elems.append(elem)

    def pop(self):
        if self.elems == []:
            print '栈空'
            # 抛出异常
        return self.elems.pop()

    def printall(self):
        for i in range(len(self.elems)):
            print self.pop()

# 节点定义
class LNode(object):
    def __init__(self, elem, _next):
        self.elem = elem
        self.next = _next

# 链表类
class LinkList(object):
    def __init__(self):
        self.head = None

    def append(self, elem):
        if self.head is None:
            self.head = LNode(elem, None)
            return
        
        p = self.head
        
        while p.next is not None:
            p = p.next

        p.next = LNode(elem, None)

    # 直接逆序输出单链表
    def print_all_rev(self):
        my_stack = SStack()
        p = self.head
        while p is not None:
            my_stack.push(p.elem)
            p = p.next
        my_stack.printall()
        

if __name__ == '__main__':
    linkList = LinkList()
    for i in range(100):
        linkList.append(i)
    # 使用栈实现链表的逆序输出
    linkList.print_all_rev()
    

相关文章

  • 从链表尾部打印链表

    1、方法一:先将链表逆序,然后在从头遍历详见http://www.jianshu.com/p/917f96a310...

  • 关于链表的预备知识

    定义结点 创建链表结点 连接链表各结点 打印链表结点的值 打印整个链表中的值 删除整个链表 在链表尾部加入结点 特...

  • 2.3.3 链表

    面试题6:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。

  • 06:从尾到头打印链表

    题目06:从尾到头打印链表 输入一个链表,从尾到头打印链表每个节点的值。 思路 一. 栈 从头遍历链表,先访问的后...

  • 数据结构之链表及其栈和队列的实现

    链表的基本操作 定义 从链表头部插入元素 从链表头部删除元素 从链表尾部插入元素 从中间插入和删除结点 栈和对列的...

  • 双向链表python实现

    python 双向链表实现 双向链表实现 链表头部添加 链表尾部添加 插入 删除 查询结点

  • 《剑指offer》— JavaScript(3)从尾到头打印链表

    从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值。 实现代码 相关知识 链表是一种物理存储单...

  • <<剑指offer>>--javascript(3)-从尾到头打

    从尾到头打印链表 题目描述 输入一个链表,从尾到头打印链表每个节点的值 代码如下 解题思路 链表是一种物理存储单元...

  • JZ-003-从尾到头打印链表

    从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。题目链接: 从尾到头打印...

  • 面试题5:从尾到头打印链表

    题目描述 输入一个链表,从尾到头打印链表每个节点的值。 输入为链表的表头,输出为需要打印的“新链表”的表头。 代码...

网友评论

      本文标题:从链表尾部打印链表

      本文链接:https://www.haomeiwen.com/subject/erjqrxtx.html