反转链表的迭代实现和递归实现

来源:互联网 发布:java date转string 编辑:程序博客网 时间:2024/05/22 05:11

迭代实现:

ListNode *reverseList(ListNode *head){if (head == NULL || head->next == NULL)return head;ListNode *pCurr = head;ListNode *pPrev = NULL;ListNode *pNext = NULL;while (pCurr != NULL){pNext = pCurr->next;  //save next nodepCurr->next = pPrev;if (pNext == NULL)head = pCurr;pPrev = pCurr;pCurr = pNext;}return head;}

递归实现:

ListNode *reverseList(ListNode *head){if (head == NULL || head->next == NULL)return head;ListNode *p = head->next;head->next = NULL;ListNode *newhead = reverseList(p);p->next = head;return newhead;}


0 0
原创粉丝点击