zoukankan      html  css  js  c++  java
  • 反转单向链表

    题目描述

    输入一个链表,反转链表后,输出新链表的表头。

    解题思路

    定义2个辅助节点:

    • 上一个节点
    • 下一个节点
    完整代码
    /*
    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };*/
    class Solution {
    public:
        ListNode* ReverseList(ListNode* pHead) {
            if(pHead == nullptr)
                return nullptr;
            
            ListNode* pNode = pHead;
            ListNode* pReverse = nullptr;
            ListNode* pPrev = nullptr;
            ListNode* pNext = nullptr;
            while(pNode != nullptr){
                // 保留下一个节点
                pNext = pNode->next;
                if(pNext == nullptr)
                    pReverse = pNode;
                pNode->next = pPrev;
                pPrev = pNode;
                pNode = pNext;
            }
            return pReverse;
        }
    };
    
  • 相关阅读:
    十天冲刺:第四天
    十天冲刺:第三天
    会议2.3
    会议2.2
    会议2.1
    团队绩效管理
    Alpha版(内部测试版)发布
    意见汇总
    建议汇总
    会议1.10
  • 原文地址:https://www.cnblogs.com/flyingrun/p/13610824.html
Copyright © 2011-2022 走看看