![](https://www.dazhuanlan.com/webchat.jpg)
最近又遇到需要链表就地逆置的问题,之前也遇到过,时间一久便忘了如何做的了。经查找,觉得下面这种算法通过三个指针的变换实现单向链表的就地逆置,比较简洁且容易理解。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
* Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ void (ListNode* head){ ListNode *p = head->next; ListNode *q = head->next; while(p){ ListNode *n = p->next; p->next = n->next; n->next = q; q = n; } head->next = q; }
|
近期评论