剑指offer之面试题24:反转链表
发布日期:2021-05-07 00:01:37 浏览次数:27 分类:精选文章

本文共 1294 字,大约阅读时间需要 4 分钟。

面试题24:反转链表

题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

思路:遍历链表,并用头插法插入到头节点之后。其中由于会出现链表断节,所以注意保存待插入节点的后一个节点。

代码实现:

package Question24;public class T01 {       public static void main(String[] args) {           Node head = 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);        Node node6 = new Node(6);        head.next = node1;        node1.next = node2;        node2.next = node3;        node3.next = node4;        node4.next = node5;        node5.next = node6;        solve(head);        Node cur = head.next;        while(cur != null) {               System.out.println(cur);            cur = cur.next;        }    }    public static Node solve(Node head) {           if(head == null) return null;        Node cur = head.next;        head.next = null;        Node temp;        while(cur != null) {               temp = cur.next;            cur.next = head.next;            head.next = cur;            cur = temp;        }        return head;    }}class Node {       int id;    Node next;    public Node(int id) {           this.id = id;    }    @Override    public String toString() {           return "Node{" +                "id=" + id +                '}';    }}
上一篇:剑指offer之面试题25:合并两个排序的链表
下一篇:剑指offer之面试题23:链表中环的入口节点

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月10日 12时23分59秒