题目描述
输入一个链表,反转链表后,输出链表的所有元素。
思路1:
采用递归的方法。
在递的过程中,找到最后一个节点作为链表头返回;
在归的过程中,反转当前节点的下一个节点。
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
if(pHead == NULL || pHead->next==NULL)
{
return pHead;
}
ListNode* pRet = ReverseList(pHead->next);
pHead->next->next = pHead;
pHead->next = NULL;
return pRet;
}
};
思路2:
新建一个空链表,每次将旧链表的头插入到新链表的头节点之后