题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/* struct ListNode { int val; struct ListNode next; ListNode(int x) : val(x), next(NULL) { } };/
//利用链表的传递性直接反转
class Solution { public: ListNode* ReverseList(ListNode* pHead) { struct ListNode*p, *temp,*pre; p = pHead; pre = NULL;//pre代表的是p前面的指针,初始设为空 while (p != NULL) { temp = p->next;//temp保留下一节点位置 p->next = pre;//让当前指针指向前面的节点 pre = p;//平移pre p = temp;//将p更新 } return pre;//最后返回空指针前的指针,即反链表的头指针 } };