【发布时间】:2021-02-07 15:43:33
【问题描述】:
我正在尝试输出列表,我在列表中添加了 3 个字符串并且它都输出 null。该代码似乎正确地添加和输出,但它只是不输出数据。我关注的方法是 prepend 和 toString。
`` 公共类 StringList {
/* ------------------------------------------------------- *
* Inner classes *
* ------------------------------------------------------- */
/**
* The node used by StringList.
*/
private class StrNode {
String data;
StrNode next;
}
/* ------------------------------------------------------- *
* Instance variables *
* ------------------------------------------------------- */
private StrNode head; // the head of the singly-linked list.
/* ------------------------------------------------------- *
* Instance methods *
* ------------------------------------------------------- */
/**
* No-argument constructor.
*/
public StringList() {
head = null;
}
/**
* Adds an item to the start of the list.
*
* @param s the item to add
*/
public void prepend(String s) {
var newNode = new StrNode();
// TODO: Adds an item to the start of the list.
if(head == null) {
head = newNode;
}
else {
newNode.next = head.next;
head.next = newNode;
}
}
/**
* Adds an item to the end of the list.
*
* @param s the item to add
*/
public void append(String s) {
// TODO: Adds an item to the end of the list.
}
/**
* Inserts an item after the first instance of a key if the key exists.
*
* @param s the item to insert
* @param key the item in the list to insert after
* @return whether the insertion was successful
*/
public boolean insertAfter(String s, String key) {
// TODO: Inserts an item after the first instance of a key if the key exists.
return false;
}
/**
* Deletes the first instance of an item from the list.
*
* @param key the value of the item to delete from the list.
* @return whether the deletion was successful.
*/
public boolean delete(String key) {
// TODO: Deletes the first instance of an item from the list.
return false;
}
/**
* Returns the value of the nth item in the list.
*
* @param n the zero-based index of the item to return
* @return the value of the nth item
*/
public String get(int n) {
// TODO: Returns the value of the nth item in the list.
// Note: if n is out of bounds, raise an IndexOutOfBoundsException.
return null;
}
/**
* Returns the number of items in the list.
*
* @return the number of items in the list
*/
public int length() {
// TODO: Returns the number of items in the list.
int length = 0;
StrNode current = head;
while(current != null) {
length++;
current = current.next;
}
return length;
}
/**
* Returns a string of all the items in the list separated by a space.
*
* The last item will have a space after it too.
*
* @return list of the list's values
*/
@Override
public String toString() {
// TODO: Returns a string of all the items in the list separated by a space.
String result = "{";
StrNode current = this.head;
while(current != null) {
result += current.data + " ";
current = current.next;
}
return result + "}";
}
} ``
司机: ``
公共类主要{ /** * @param args 命令行参数 */ public static void main(String[] args) {
StringList s = new StringList();
s.prepend("one");
s.prepend("two");
s.prepend("three");
System.out.println(s);
}
}
``
【问题讨论】:
标签: java methods linked-list