【发布时间】:2023-04-03 18:31:01
【问题描述】:
我有一个LinkedList(LinkedList 的自己的代码),其中包含char。这是完整列表:['a','b','I','d','R','A','7','p']。
我正在尝试编写一种方法来删除所有不是大写字母的字符。运行该方法后,LinkedList 应如下所示['I','R','A']。
但是在运行我的代码后,我得到了与return 相同的列表,这个列表:['a','b','I','d','R','A','7','p']。
这是我的方法代码:
public static ListNode copyUpperCase(ListNode head) {
ListNode ptr = head;
while(!isEmpty(ptr.next)){
if(!Character.isUpperCase(ptr.element)){
ptr = ptr.next.next;
//System.out.println(ptr.element);
}
ptr = ptr.next;
}
return head;
}
这里是isEmpty():
public static boolean isEmpty(ListNode l) {
if ( l == null )
throw new ListsException("Lists: null passed to isEmpty");
return l.next == null;
}
这里是ListNode:
public class ListNode {
public char element;
public ListNode next;
}
我可以看到搜索部分正在工作,但我无法正确删除节点部分,有什么建议吗?
【问题讨论】:
标签: java algorithm list data-structures linked-list