美文网首页
面试题6:逆序数出链表

面试题6:逆序数出链表

作者: 修司敦 | 来源:发表于2018-11-10 15:45 被阅读0次

    输入一个链表的头节点,从尾到头反过来打印出每个节点的值。链表节点定义如下:

    struct ListNode
    {
        int       value;
        ListNode* pNext;
    };
    

    答案:

    void PrintListReversely_Iterative(ListNode *pHead)
    {
        if (pHead == nullptr) return;
    
        stack<int> vals;
        auto pTempNode = pHead;
        while (pTempNode != nullptr)
        {
            vals.push(pTempNode->value);
            pTempNode = pTempNode->pNext;
        }
        while (!vals.empty())
        {
            cout << vals.top() << '\t';
            vals.pop();
        }
    }
    
    void PrintListReversely_Recursive(ListNode *pHead)
    {
        if (pHead != nullptr)
        {
            if (pHead->pNext != nullptr)
            {
                PrintListReversely_Recursive(pHead->pNext);
            }
            cout << pHead->value << '\t';
        }
    }
    

    相关文章

      网友评论

          本文标题:面试题6:逆序数出链表

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