剑指offer24 反转链表 Java

public class ReverseLinkList24 {
    static class Node {
        int val;
        Node next;
        public Node(int val){
            this.val = val;
        }
        @Override
        public String toString() {
            return "Node{" +
                    "val=" + val +
                    ", next=" + next +
                    '}';
        }
    }
    public static void main(String[] args) {
        Node root = new Node(0);
        Node node1 = new Node(1);
        Node node2 = new Node(2);
        Node node3 = new Node(3);
        Node node4 = new Node(4);
        Node node5 = new Node(5);
        root.next = node1;
        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        System.out.println(reverseList(root));
    }

    private static Node reverseList(Node root) {
        Node newHead = new Node(-1);
        Node p = root;
        while (p != null) {
            Node q = p.next;
            p.next = newHead.next;
            newHead.next = p;
            p = q;
        }
        return newHead.next;
    }
}

解释:新增一个头节点,返回时去掉他即可

猜你喜欢

转载自blog.csdn.net/weixin_43065507/article/details/99335115