我很难解决这个问题。我已经花了几个小时,但无法弄清楚。
我有一个链接列表,我正在尝试手动排序。我的节点称为 CNodes。有一个 start CNode、一个 tail CNode 和一个 newNext CNode。
每个节点都包含一个联系人。联系人有一个名字,我正尝试按该名字对列表进行排序。
我知道有更多自动的方法可以做到这一点,但我需要证明我了解如何排序(显然我现在不知道)。
我试图通过迭代每个节点并将其与开始进行比较,然后在符合条件的情况下更改开始实体来做到这一点。
这段代码不工作......我已经工作了两天,真的被卡住了。
任何具体的建议将不胜感激。
CNode nextNode=start;
while(nextNode.getNext()!=null) {
CNode newNext;
tail=nextNode;
while(tail!=null) {
if(start.getContact().getStrFirstName().compareTo(tail.getContact().getStrFirstName()) > 0) {
//We put the starting node in a temp node
newNext=start;
newNext.setNext(tail.getNext());
//We set our current node to the start
start=tail;
start.setNext(newNext);
//Set the next node of start to the original next one of the one we
//just removed from the chain
//Set current marker to the new first nodes' next entity
tail=start.getNext();
//Set the next node for the marker to the one we just removed
} else {
tail=tail.getNext();
}
}
nextNode=nextNode.getNext();
}