6 검 은 OFPER 1 을 가리킨다. 체인 테이블 을 입력 하고 끝 에서 끝까지 체인 테이블 의 각 노드 의 값 을 출력 한다.

참고 자료:
[1] 검 지 OFPER 교과서 사고방식 P59 [2] 단 방향 체인 테이블 을 어떻게 만 드 는 지.오늘 배 운 것 참고:http://www.cnblogs.com/skywang12345/p/3561803.html
키워드:
창고.
자신의 코드:
개선 판:
struct ListNode {
    int m_nKey;
    ListNode * m_pNext;
};

vector PrintFromTailToHead(ListNode *pHead)
{
    stack staTmp;
    vector vecResult;

    ListNode* pNode = pHead;

    if (pHead == nullptr)
        return vecResult;

    //                 
    while (pNode != nullptr)
    {
        staTmp.push(pNode->m_nKey);
        pNode = pNode->m_pNext;
    }

    while (!staTmp.empty())
    {
        vecResult.push_back(staTmp.top());
        staTmp.pop();
    }

    return vecResult;
}

초기 버 전:
/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/


class Solution {
public:
    vector printListFromTailToHead(ListNode* head) {
        
        //     :          ,    pop    vector 
        
        stack num;
         vector num2;
        ListNode* pNode = head;
        
        if(pNode ==nullptr)
            return num2;
        //  1:           
        while(pNode!= nullptr)
        {
            num.push(pNode->val);
            pNode = pNode->next;
        }
        //  2:       
        while(!num.empty())
        {
            num2.push_back(num.top());
            num.pop();    
        }
        return num2;
    }
};

표준 답안:
#include 
#include 
#include 

using namespace std;

struct ListNode
{
    int val;
    struct ListNode* next;
    ListNode(int x):val(x),next(NULL)
    {}
};

class Solution
{
public:
    vector printListFromTailToHead(ListNode* head)
    {
        vector result;
        // :stack,      。,              。
        stack arr;
        ListNode* p=head;
        while(p!=NULL)
        {
            arr.push(p->val);
            p=p->next;
        }
        int len = arr.size();
        for(int i=0;inext=pnode1;

    ListNode* pnode2 = new ListNode(1);
    pnode1->next = pnode2;

    ListNode* pnode3 = new ListNode(2);
    pnode2->next = pnode3;

    pnode3->next = NULL;

//........................................................
    Solution A;

    vector result;
    result = A.printListFromTailToHead(head);
    cout<::iterator iElementLocator = result.begin();
    while(iElementLocator != result.end())
    {
        cout<

좋은 웹페이지 즐겨찾기