题解 | #反转链表#

反转链表

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

在链表开头设置虚拟dummy节点,随迭代进行head节点逐渐后移,每次迭代都需要把head之后的数字加到dummy后(即成为链表开头的第一个数字),故设置dnext = dummy.next表示链表的第一个节点,hnext = head.next表示head后的节点,dummy.next = hnext将head后的节点移到链表开头,hnext.next = dnext完成倒序,head.next = hnext.next将head节点与dnext后面的节点连接方便下一次迭代。
dummy = ListNode(0)
dummy.next = head    # 将dummy节点与head节点连接
while head != None and head.next != None:
    dnext = dummy.next    # 表示链表开头的节点(不一定是head)
    hnext = head.next    # 表示head后的节点(需要在这单次迭代中移到开头)
    dummy.next = hnext    # 移到开头
    hnext.next = dnext
    head.next = hnext.next
    
return dummy.next


全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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