struct ListNode* ReverseList(struct ListNode* pHead ) {
// write code here
struct ListNode* temp;
struct ListNode* node = pHead;
struct ListNode* ret = NULL;
while(node){
temp=node->next;
node->next=ret;
ret=node;
node=temp;
}
return ret;
}
方法的返回值是反转列表的头结点。
用什么语言我们都得自定义一个返回的头结点,一个用来防止当前传入链表的"链"断掉的临时变量,一个存储原来链表的临时变量。
当然while循环内的代码很少,第一步就是存储当前结点的下一个结点。因为每次循环我们都得让当前结点指向前一个结点,会导致找不到next结点。第二行就是实现当前结点指向上一个结点,第三行就是临时变量存储当前结点,第四行就是将第一行存储的下一个结点交给node结点。