链表问题

  1. 链表问题
    1. 单双链表的反转

链表问题

  1. 单链表:value/next
  2. 双链表:value/last/next

单双链表的反转

  1. 给定一个单链表的头head,完成链表的逆序调整

  2. 给定一个双链表的头head,完成链表的逆序调整

  3. 可达性:head一开始指向头,反转后,应该让head抓住刚才的尾(新的头),否则jvm会释放

  4. 代码:

    public static Node reverseLinkedList(Node head) {
        Node pre = null;
        Node next = null;
        while (head != null) {
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
    
  5. 例题:两个链表相加,给定两个链表的头节点head1和head2,认为从左到右是某个数字从低位到高位,返回相加之后的链表

    1. 例子:4 -> 3 -> 6 2 -> 5 -> 3
    2. 返回:6 -> 8 -> 9
    3. 解释:634 + 352 = 986
  6. 例题:两个有序链表的合并,给定两个有序链表的头节点head1和head2,返回合并之后的大链表,要求依然有序

    1. 例子 1 -> 3 -> 3 -> 5 -> 7
      2 -> 2 > 3 -> 3-> 7
    2. 返回 1 -> 2 -> 2 -> 3 -> 3 -> 3 -> 3 -> 5 -> 7

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 963614756@qq.com。