美文网首页
6.从尾到头打印链表

6.从尾到头打印链表

作者: 带带吴腾跃 | 来源:发表于2019-12-08 16:54 被阅读0次

由于链表在内存中不是连续存储的,所以必须要知道链表头指针的地址。
由于是从尾到头打印,自然而然想到用栈结构实现,因为递归本质上也是一个栈结构,所以也可以用递归实现。

栈结构实现从尾到头打印链表:

struct ListNode
{
    int m_nvalue;
    ListNode* m_pNext;
};

void PrintListReversingly(ListNode* pHead)
{
    std::stack<ListNode*> node;
    ListNode* pNode = pHead;
    while(pNode -> m_pNext != nullptr)
    {
        node.push(pNode);
        pNode = pNode -> m_pNext;
    }
    while(!node.empty())
    {
        pNode = node.top();
        printf("%d\t",pNode -> m_nvalue);
        node.pop();
    }

}

递归实现从尾到头打印链表:

void PrintListReversingly_Recrusively(ListNode* pHead)
{
    if (pHead != nullptr)
    {
        if (pHead -> m_pNext != nullptr)
        {
            PrintListReversingly_Recrusively(pHead ->m_pNext);
        }
        printf("%d\t",pHead ->m_pNext);
    }
}

一般不推荐用递归,效率太低!

相关文章

  • 剑指offer(第二版)题目分类整理

    链表 ~~~6. 从尾到头打印链表 ###18.1 在 O(1) 时间内删除链表节点 需要分情况,是否是尾节点...

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

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

  • 2.3.3 链表

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

  • 6.从尾到头打印链表

    题目 输入链表的第一个节点,从尾到头反过来打印出每个结点的值。 思路 1.使用栈 O(N)+O(N) 2.使用递归...

  • 6.从尾到头打印链表

    由于链表在内存中不是连续存储的,所以必须要知道链表头指针的地址。由于是从尾到头打印,自然而然想到用栈结构实现,因为...

  • 6.从尾到头打印链表

    思路:直接顺序打印链表,并入栈,出栈的顺序即为倒序

  • 6.从尾到头打印链表

    题目描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 代码: 思路分析: 按照从头到尾的顺序...

  • 06:从尾到头打印链表

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

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

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

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

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

网友评论

      本文标题:6.从尾到头打印链表

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