题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
  public:
    ListNode* ReverseList(ListNode* pHead) {
        // 空间复杂度要求为O(1),则不能开辟空间
        if (pHead == nullptr) {
            return nullptr;
        }
        ListNode* pTemp = nullptr; // 用于记录剩余链表的头节点,防止断掉找不到头
        ListNode* pPre = nullptr;  // 用于记录前置节点
		while (pHead) {
            pTemp = pHead->next;
			pHead->next = pPre;
			pPre = pHead;
            pHead = pTemp;
        }
		return pPre;
    }
};

2023 剑指-链表 文章被收录于专栏

2023 剑指-链表

全部评论

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
09-29 11:19
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务