本文共 755 字,大约阅读时间需要 2 分钟。
定义链表结构
struct ListNode{ int val; ListNode *next; ListNode(int v) : val(v), next(NULL) {}};
非递归反转单链表
ListNode* reverse(ListNode *root){ if (root == NULL || root->next == NULL) return root; ListNode *cur = root->next; root->next = NULL; while (cur != NULL) { ListNode *tmp = cur->next; cur->next = root; root = cur; cur = tmp; } return root;}
递归反转单链表
void reverseRec(ListNode *root, ListNode *&head){ if (root == NULL) return; if (root->next == NULL) { head = root; return; } reverseRec(root->next, head); root->next->next = root; root->next = NULL;}
测试
本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3955101.html,如需转载请自行联系原作者