反转链表

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);
全部评论

相关推荐

认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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