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

时间:2014-09-27 15:06:23

标签: java linked-list

我如何按升序添加不同的元素假设我的列表中已经存在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相关的问题,我正在尝试更长时间,但它对我没有用。 我现在改变了算法,但仍然有问题,它只是在列表的最后一个排序三个元素它不能正常工作我想按升序排序

1 个答案:

答案 0 :(得分:0)

您没有创建新的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;
    }

    }