【发布时间】:2014-04-03 23:24:55
【问题描述】:
我编写了这段代码,它将在链表(称为 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;
}
【问题讨论】:
-
如果
if语句失败,那么你就不会更新head,所以while循环总是测试相同的条件。 -
是的,这似乎是问题所在。谢谢!
标签: java algorithm list search linked-list