以正确的字母位置添加到链接列表

时间:2016-11-15 19:27:37

标签: java linked-list

我的任务是修改下面的代码,使其按字母顺序在链表中定位新元素。它目前将元素添加到列表的末尾。

public void add(String element) {
    Node newNode = new Node(element);
    if (first == null)
        first = newNode;
    else {
        // Find the predecessor of the element to add
        Node current = first;
        Node prev = null;
        while (current != null) {
            prev = current;
            current = current.next;
        }
        // New last element 
        if (current == null) 
            prev.next = newNode;
        else if (prev == null) {
            newNode.next = first;
            first = newNode;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您需要继续遍历列表,直到到达按字母顺序大于您要插入的节点的节点。

找出您在链接列表中遍历的代码中的位置。

while (current != null) {
    prev = current;
    current = current.next;
}

添加条件,比较节点的元素

while (current != null && current.data < newNode.data) {

停止遍历并添加新节点。

prev.next = newNode
newNode.next = current