我的任务是修改下面的代码,使其按字母顺序在链表中定位新元素。它目前将元素添加到列表的末尾。
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;
}
}
}
答案 0 :(得分:1)
您需要继续遍历列表,直到到达按字母顺序大于您要插入的节点的节点。
找出您在链接列表中遍历的代码中的位置。
while (current != null) {
prev = current;
current = current.next;
}
添加条件,比较节点的元素。
while (current != null && current.data < newNode.data) {
停止遍历并添加新节点。
prev.next = newNode
newNode.next = current