题解 | #反转链表#

反转链表

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);
    }

}
全部评论

相关推荐

_mos_:忍耐王
点赞 评论 收藏
分享
“校招”、“3-5年经验”
飞花断音:小公司招逆向的不要去,基本上都是搞黑灰产违法的东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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