gpt4 book ai didi

java - 在链表中查找大写字母并返回包含找到的元素的新链表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:45 24 4
gpt4 key购买 nike

我必须编写一个方法来搜索链表(ListNode,每个列表节点包含一个字符),找到所有大写字符,将它们复制到新的 ListNode 并返回新的 ListNode。到目前为止,这是我的代码,但未通过 JUnit 测试(由教授提供)

这是列表节点:

public class ListNode {
public char element;
public ListNode next;

}

这是我写的方法,但似乎不起作用:

 public static ListNode copyUpperCase(ListNode head) {

ListNode newListNode = mkEmpty();
if(head == null){
throw new ListsException("Lists: null passed to copyUpperCase");
}else{
char[] sss = toString(head).toCharArray();
for(int i = 0; i < sss.length ; i++ )
if(Character.isUpperCase(sss[i])){
newListNode.element = sss[i];
}
newListNode = newListNode.next;
}
return newListNode;
}

代码有什么问题?为什么会失败?

最佳答案

扩展@enterbios 的回答(为他+1),尝试以下操作:

public static ListNode toUpperCase(ListNode head) {
if (head == null)
throw new ListsException("Lists: null passed to copyUpperCase");

ListNode newHead = null;
ListNode current = null;

char[] sss = toString(head).toCharArray();

for (int i=0; i<sss.length; i++) {
if (Character.isUpperCase(sss[i])) {
if (current == null) {
current = mkEmpty();
newHead = current;
} else {
current.next = mkEmpty();
current = current.next;
}
current.element = sss[i];
}
}
return newHead;

}

关于java - 在链表中查找大写字母并返回包含找到的元素的新链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com