1.反转链表(leetcode206)
题目描述:
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
迭代实现
:
思路:
创建两个结点,重复让后一个结点指向前一个结点,直到后一个结点的后继结点为空(由于反转链表,原来的头结点变为尾结点,所以要让头结点的next为空)
代码:
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if(!head ||!head->next) return head;
auto p = head,q = p->next;
while(q)
{
auto o = q->next;
q->next = p;
p = q,q = o;