[LeetCode] 链表反转相关题目

暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下。首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向。

下面直接看看LeetCode上的题目:

206. Reverse Linked List

这是一道最基本的链表反转题目。

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if (head == NULL || head->next == NULL) return head; ListNode *p = head; ListNode *q = head->next; head->next = NULL; while (q) { ListNode *r = q->next; q->next = p; p = q; q = r; } return p; } };

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppffy.html