要求
代码
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
struct ListNode* ReverseList(struct ListNode* head ) {
// write code here
struct ListNode*preNode=NULL;
struct ListNode*curNode=NULL;
struct ListNode*nextNode=NULL;
curNode=head;
while (curNode!=NULL) {
/*1.下一个节点完成链接
2.当前节点的下一个链接指向pNode(反转)*/
nextNode=curNode->next;
curNode->next=preNode;
/* 3.上一个节点移动到当前节点
4.当前节点移向下一个*/
preNode=curNode;
curNode=nextNode;
}
head=preNode;//最后p节点指向首节点,而c\n节点指向NULL
return head;//返回首节点
}