Q:使用插入排序对链表进行排序。
A:
创建头结点;

    public ListNode insertionSortList(ListNode head) {
        if (head == null || head.next == null)
            return head;
        ListNode head0 = new ListNode(Integer.MIN_VALUE);
        ListNode node1 = head;
        ListNode node2 = head;
        ListNode tempNode = head0;
        boolean flag = false;
        while (node1 != null) {
            while (tempNode.next != null) {
                if (tempNode.next.val > node1.val) {
                    flag = true;
                    node2 = node1.next;
                    node1.next = tempNode.next;
                    tempNode.next = node1;
                    tempNode = tempNode.next;
                    break;
                }
                tempNode = tempNode.next;
            }
            if(!flag){
                node2 = node1.next;
                node1.next = tempNode.next;
                tempNode.next = node1;
            }
            flag = false;
            tempNode = head0;
            node1 = node2;
        }
        return head0.next;
    }

相关文章:

  • 2021-07-05
  • 2022-01-09
  • 2021-05-23
  • 2022-01-25
  • 2021-12-19
  • 2022-02-24
  • 2022-01-02
猜你喜欢
  • 2021-07-18
  • 2022-01-09
  • 2022-12-23
  • 2022-01-01
  • 2021-12-11
相关资源
相似解决方案