/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pHead ListNode类
* @return ListNode类
*/
struct ListNode* ReverseList(struct ListNode* pHead ) {
// write code here
struct ListNode* nhead=NULL;//新的头结点
struct ListNode* nex=pHead;//指向的下一个节点
while (pHead) {
nex=pHead->next;
pHead->next=nhead;
nhead=pHead;
pHead=nex;
}
return nhead;
}
需要两个节点,一个指向当前节点的下一个节点,一个指向反转后的新链表的头结点。
最开始反转链表没有,头结点指向NULL,
1.首先要获取当前节点的下一个节点,那么这个节点的next就没用啦,
2.可以修改了,改为反转链表的上一个的头结点的地址。
3.然后新的头结点就是当前这个节点了,
4.这个节点修改完了,继续修改下一个节点。

京公网安备 11010502036488号