题解 | #反转链表#

反转链表

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

首先确定题意就是通过接到的链表进行一个倒置,那么很显然就是通过建立新链表,用倒插法的方法的效率是最高的,复杂度是O(1),代码如下:

class Solution {
    public ListNode reverseList(ListNode head) {

        ListNode tail=null;
        while (head!=null){
            ListNode tempListNode=new ListNode(head.val);
            tempListNode.next=tail;
            tail=tempListNode;
            head=head.next;
        }
        return tail;
    }
}
public class test01{

    public static void main(String[] args) {
        Solution solution=new Solution();
        ListNode head=new ListNode(0);
        ListNode tail=head;
        for (int i = 1; i <= 3; i++) {
            tail.val=i;
            if (i!=3)
                tail.next = new ListNode(0);
                tail=tail.next;
        }
        head.display(head);
        ListNode node = solution.reverseList(head);
        System.out.println("排序后");
        head.display(node);
    }

}
全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务