题解 | #反转链表#

反转链表

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

不使用stack的方法,通过三个变量实现链表倒置

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head==null||head.next==null)return head;
        //如果链表是空的或者只有一个值那么直接返回
        ListNode pre=head,mid=head.next,beh=head.next.next;
        //pre代表前一个,mid代表中间的,beh代表后一个
        pre.next=null;//倒置后为最后一个节点,下一跳为null
        while(mid!=null){//中间的mid为null时说明到最后了
            beh=mid.next;//beh的指针后移
            mid.next=pre;//改变指针朝向
            pre=mid;//pre指针后移
            mid=beh;//mid指针后移
        }
        return pre;
    }
}
全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务