题解 | #反转链表#

反转链表

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


全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
06-15 20:57
已编辑
门头沟学院 Java
CARLJOSEPH...:年轻人有傲气很正常,但是建议工作前洗净傲气。 说实在的,什么奖学金什么奖项的都很一般。尊重你的老师,在有时间的时候去上课,真遇到走不开的事,请态度端正地向你的老师说明情况,请求请假。我相信任何一个有师德的老师都会允许的(我的老师就是这样)。
点赞 评论 收藏
分享
06-07 12:20
新余学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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