从尾到头打印单链表

题目描述:从尾到头打印单链表输入一个链表的头结点,从尾到头反过来打印出每个节点的值

目前创新互联已为千余家的企业提供了网站建设、域名、雅安服务器托管网站托管运营、企业网站设计、望城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

链表的节点定义如下:


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

分析:从尾到头打印单链表

一般情况下,遇到这种问题,首先应该问清楚面试官是否可以改变原有的链表结构,自己再做分析。

从尾到头打印单链表

从尾到头打印单链表

void PrintListReversingly_Iteratively(ListNode* pHead)
{
    std::stack nodes;

    ListNode* pNode = pHead;
    while(pNode != NULL)
    {
        nodes.push(pNode);
        pNode = pNode->m_pNext;
    }

    while(!nodes.empty())
    {
        pNode = nodes.top();
        printf("%d\t", pNode->m_nValue);
        nodes.pop();
    }
}

从尾到头打印单链表

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

从尾到头打印单链表说明:用递归的代码看起来很简洁,但是如果一个链表非常长,于是递归调用的深度越深,就有可能导致栈溢出,因此利用循环实现的代码的鲁棒性(健壮性)会更好些。从尾到头打印单链表


名称栏目:从尾到头打印单链表
网站网址:http://bzwzjz.com/article/jecsoc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销型网站建设 高端网站设计 网站建设方案 品牌网站建设 手机网站制作设计 成都网站设计 成都网站建设 成都网站设计 成都网站建设 成都网站建设 成都网站设计制作公司 攀枝花网站设计 网站制作报价 自适应网站建设 手机网站制作 定制网站建设 品牌网站建设 重庆企业网站建设 成都网站制作 阿坝网站设计 成都网站建设 成都网站设计