题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

/**
 * 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.这个节点修改完了,继续修改下一个节点。

全部评论

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务