我编写了这段代码,它将搜索链表中的字符(称为ListNode),检查是否有任何字符大小的字符,然后将它们存储在新的链表中(然后返回新的链表)。当我运行这个代码时,它进入了一个无限的"循环不返回任何东西。这是为什么? NodeList确实包含一些大写字符。这是代码:
public static ListNode copyUpperCase(ListNode head) {
ListNode newListNode = mkEmpty();
if(head == null){
throw new ListsException("");
}else{
while(head.next != null){
if(Character.isUpperCase(head.element)){
newListNode.element = head.element;
head = head.next;
}
}
}
return newListNode;
}
答案 0 :(得分:5)
如果head.element
字符不是大写的,该怎么办? head
永远不会更新为head.next
。
将head = head.next;
放在if
块之后,以便始终执行。