链表C++ | 从尾部打印头部(使用栈、递归实现)_3

本文介绍了如何使用栈和递归两种方法从链表的尾部开始打印到头部。分别给出了对应的测试代码及运行结果,展示了这两种实现方式。
摘要由CSDN通过智能技术生成

从尾部打印头部

栈 - 实现:

void printListReversingly_Iteratively(ListNode** pHead)
{
    std::stack<ListNode*> nodes;

    ListNode* pNode = *pHead;
    while(pNode!=nullptr){
            nodes.push(pNode);
            pNode = pNode->m_pNext;}
            
    while(!nodes.empty()){
            pNode = nodes.top();
            printf("%d ",pNode->m_nValue);
            nodes.pop();}
}

测试代码:

#include<iostream>
#include<stack>

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

ListNode* AddToTail(ListNode** pHead, int Value)
{
    ListNode* pNew = new ListNode();
    pNew->m_nValue = Value;
    pNew->m_pNext = nullptr;

    if(*pHead == NULL){
        *pHead = pNew;}
    else{
        ListNode* pNode = *pHead;
        while(pNode->m_pNext != nullptr)
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值