循环遍历链表,用一个临时的变量保存下一个节点,并将当前节点用头插法插入到一个新的链表中,最后返回这个新的链表
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* pNew = NULL; ListNode* p = pHead; while(p) { //当前节点为p,临时保存下一个节点; ListNode* tmp = p->next; //头插法插入到新的链表中; p->next = pNew; pNew = p; //到下一个节点; p = tmp; } return pNew; } };