如果列表不为空,如何按链表升序添加元素



如何按升序添加不同的元素假设我的列表中已经存在5个不同的元素,并且我想在现有列表中添加新值

void add(int e) {
    Node nNode = new Node();
    nNode.element = e;
    nNode.next = null;
    if (head == null) {
        head = nNode;
    } else {
        Node tNode = head;
        while (tNode.next != null && head.element>e) {
            head=nNode;
            nNode.next=tNode;
            tNode = tNode.next;
        }
        tNode.next = nNode;
    }

这是一个与java相关的问题,我尝试了很长时间,但它对我不起作用。我现在已经更改了算法,但它仍然有问题——它只对列表最后一个元素的三个元素进行排序——它工作不正常——我想按的升序排序

您没有创建新的Node()来插入节点。让我们试试下面的代码。

   void aAsc(int e)
    {
    Node node = new Node();
    node.element = e;
    if(start==null)
        {
        start = node;
        }

    Node p=start;
    while(p.next!=null){
        if(p.next.element>e) {
            node.next = p.next;
            p.next = node;
            break;
        }
            p=p.next;
    }
    }

相关内容

  • 没有找到相关文章

最新更新