题解 | #反转链表#

反转链表

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-04 18:25
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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