/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * * @param pHead ListNode类 * @return ListNode类 */ struct ListNode* ReverseList(struct ListNode* pHead ) { // write code here if(pHead==NULL) return pHead; //其余情况下使用头插法翻转链表; struct ListNode* p=pHead->next; pHead->next=NULL; struct ListNode* q=p->next; //p指针存放的是即将作为新的头的值,q指针存放的是其余的链表; while(p!=NULL){ p->next=pHead; pHead=p; p=q; q=q->next; } //p->next=pHead; //pHead=p; return pHead; } 虽然感觉自己的代码有点问题,比如只有一个元素的时候p指针已经为NULL了,那么q指针的初始化就应该出现问题,但是很奇怪的是反而跑通了,有点想不明白
点赞

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务