题目描述
给你一个链表,你需要将他反转的链表新的头部返回出去。
Solution
最佳操作,三指针推动,一个指向前驱pre,一个指向当前节点now,一个指向后继节点nex,依次先后推进,并且可以保证链表信息不丢失。
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode* pre = NULL; ListNode* now = pHead; ListNode* nex = NULL; while(now){ nex = now->next; now->next = pre; pre = now; now = nex; } return pre; } };