zoukankan      html  css  js  c++  java
  • 剑指offer--面试题16

    #include<stack>
    
    //思路:遍历链表过程中,将各个指针入栈,再出栈进行反转
    ListNode* ReverseList(ListNode* pHead)
    {
        if(pHead == NULL)
            return NULL;
        ListNode* pNode = pHead;
    
        stack<ListNode*> pNodeStack;
        while(pNode != NULL)
        {
            pNodeStack.push(pNode);
            pNode = pNode->m_pNext;
        }
        
        pNode = pNodeStack.top();
        ListNode* pFront = pNode;
        pNodeStack.pop();
    
        while(!pNodeStack.empty())
        {
            pNode->m_pNext = pNodeStack.top();
            pNode = pNode->m_pNext;
            pNodeStack.pop();
        }
    
        pNode->m_pNext = NULL;
    
        return pFront;
    }

     不用栈,自己还真不好编。。。

    虽然有思路,但写出代码来还比较困难。。。惊叹于作者代码的精炼!!!

    学习:

    ListNode* ReverseList(ListNode* pHead)
    {
        ListNode* pReversedHead = NULL;
        ListNode* pNode = pHead;
        ListNode* pPrev = NULL;
        while(pNode != NULL)
        {
            ListNode* pNext = pNode->m_pNext;
    
            if(pNext == NULL)
                pReversedHead = pNode;
    
            pNode->m_pNext = pPrev;
    
            pPrev = pNode;
            pNode = pNext;
        }
    
        return pReversedHead;
    }
    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    jQery总结01
    抽象类和接口精华
    JS基础之开篇
    HTML常见元素集锦
    bzoj3626 [LNOI2014]LCA
    bzoj3223 Tyvj 1729 文艺平衡树
    bzoj3196 Tyvj 1730 二逼平衡树
    bzoj3295 [Cqoi2011]动态逆序对
    bzoj3514 Codechef MARCH14 GERALD07加强版
    bzoj3932 [CQOI2015]任务查询系统
  • 原文地址:https://www.cnblogs.com/hello-yz/p/3252876.html
Copyright © 2011-2022 走看看