请帮我看看下面的代码有问题吗如果没有问题请优化如果有问题请指出并更改public class ReverseNode public static class ListNode public int value; public ListNode next; public ListNodeint value thisvalue
这段代码没有明显的问题,但是可以对代码进行优化。
首先,在ListNode类中,可以添加一个构造函数,可以同时传入value和next节点,方便链表的构建。
其次,在printLinkedList方法中,可以使用StringBuilder类来拼接链表节点的值,然后一次性打印出来,这样可以提高效率。
最后,在main方法中,可以使用for循环来构建链表,避免重复的赋值操作。
下面是优化后的代码:
public class ReverseNode {
public static class ListNode {
public int value;
public ListNode next;
public ListNode(int value) {
this.value = value;
}
public ListNode(int value, ListNode next) {
this.value = value;
this.next = next;
}
@Override
public String toString() {
return String.valueOf(value);
}
}
public static ListNode reverseNode(ListNode head) {
if (head == null) {
return null;
}
ListNode prev = null;
ListNode node = head;
while (node != null) {
ListNode nextNode = node.next;
node.next = prev;
prev = node;
node = nextNode;
}
return prev;
}
public static void printLinkedList(ListNode head) {
StringBuilder sb = new StringBuilder();
ListNode node = head;
while (node != null) {
sb.append(node).append(" ");
node = node.next;
}
System.out.println(sb.toString());
}
public static void main(String[] args) {
ListNode head = null;
for (int i = 3; i > 0; i--) {
head = new ListNode(i, head);
}
ListNode reversedHead = reverseNode(head);
printLinkedList(reversedHead);
}
}
``
原文地址: https://www.cveoy.top/t/topic/igha 著作权归作者所有。请勿转载和采集!