微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使链表排序?

如何解决如何使链表排序?

在你的链表项目中编写一个java方法来在你的链表中执行排序插入。排序插入是这样一种方式,每当您插入一个新元素时,它就会被插入到它的排序位置。但我没有得到这里的输出是我的代码

{
  public void insertSorted(int data) 
{
    
    Node temp = new Node(data);
    if(head == null || head.Data > data) 
    {
        temp.next = head;
        head = temp;
    }
    Node head2 = head;
    while(head2.next != null && head2.next.Data < data) 
    {
        head2 = head2.next;
    }
    temp.next = head.next;
    head.next = temp;
}

public void display() 
{
    Node t = head;
    while(t != null)
    {
        System.out.print(t.Data+" -> ");
        t = t.next;
    }
    System.out.println("NULL");
}
}

解决方法

你可以试试这个,它会按你的预期工作 ->

 public void seprator1(Node curr) {
    if (curr == null || curr.next == null) {
        return;
    }

    Node Even,EvenTail,oddStartingNode,oddEndNode;

    Even = EvenTail = oddStartingNode = oddEndNode = null;

    while (curr != null) {
        if (curr.data % 2 == 0) {
            if (Even == null) {
                Even = curr;
                EvenTail = Even;
            } else {
                EvenTail.next = curr;
                EvenTail = EvenTail.next;
            }
        } else {
            if (oddStartingNode == null) {
                oddStartingNode = curr;
                oddEndNode = oddStartingNode;
            } else {
                oddEndNode.next = curr;
                oddEndNode = oddEndNode.next;
            }
        }

        curr = curr.next;
    }

    displayNode(Even);
    System.out.println();
    displayNode(oddStartingNode);

}

private void displayNode(Node node) {
    if (node == null) {
        return;
    }
    System.out.print(node.data+" ");
    displayNode(node.next);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。