反转链表

class ListNode {
    int value = 0;
    ListNode next = null;
    public ListNode(int value) {
        this.value = value;
    }
}
/* 存储头结点的下一个节点 头结点指向新链表的头结点 头结点成为新链表的头结点 头结点的下一个节点成为新的头结点 */
public static ListNode reverse(ListNode head) {
   ListNode newHead = null;
    while(head != null) {
        ListNode next = head.next;
        head.next = newHead;
        newHead = head;
        head = next;
    }
    return newHead;
}
// 测试代码
ListNode listNode = new ListNode(1);
listNode.next = new ListNode(2);
listNode.next.next = new ListNode(3);
listNode.next.next.next = new ListNode(4);
ListNode reverse = reverse(listNode);
System.out.println(reverse.value);
System.out.println(reverse.next.value);
System.out.println(reverse.next.next.value);
System.out.println(reverse.next.next.next.value);
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务