算法-链表篇03-反转链表
- 游戏开发
- 2025-09-09 23:15:01

反转链表
力扣题目链接
题目描述给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
解题思路首先定义链表节点指针pre和cur分别代表反转的前一个节点和当前反转节点,但是节点反转后,后一个节点会出现没有指向的情况,无法访问到,也就是发生了内存泄漏。所以,我们还需要一个next指针保存一下下一个节点的地址。然后循环遍历对整个链表进行反转操作。
题解 class Solution { public: ListNode* reverseList(ListNode* head) { if(head == nullptr || head->next == nullptr){ return head; } ListNode* pre = nullptr; ListNode* cur = head; ListNode* next; while(cur != nullptr){ next = cur->next; cur->next = pre; pre = cur; cur = next; } return pre; } }; 总结反转链表虽然原理上很简单,但是实际操作中很容易被各个节点给绕进去,所以需要严谨定义每个指针。在进行反转操作时也要防止每一步的顺序错误,这可能会导致意想不到的错误。
算法-链表篇03-反转链表由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“算法-链表篇03-反转链表”