提问人:Lakshya Gupta 提问时间:10/6/2023 最后编辑:Lakshya Gupta 更新时间:10/9/2023 访问量:59
在 java 中实现一个没有类的单向链表
Implement a singly linked list in java without classes
问:
我正在解决问题:https://www.codingninjas.com/studio/problems/introduction-to-linked-list_8144737?utm_source=striver&utm_medium=website&utm_campaign=a_zcoursetuf&leftPanelTab=0,在实现代码时,我收到错误,说“重复的类名:节点”。以下是我为此编写的代码:
class Node {
public static int data;
public static Node next;
Node()
{
this.data = 0;
this.next = null;
}
Node(int data)
{
this.data = data;
this.next = null;
}
Node(int data, Node next)
{
this.data = data;
this.next = next;
}
};
class implement {
public static Node head;
static Node addatend(int value){
Node temp=head;
Node add= new Node(value);
if(head==null){
head=add;
}
else{
while(temp.next!=null){
temp=temp.next;
}
temp.next=add;
}
return head;
}
public class Solution {
public static Node constructLL(int []arr) {
// Write your code here
Node ans=null;
implement z = new implement ();
for(int i=0;i<arr.length;i++){
int t=arr[i];
ans= z.addatend(t);
}
return ans;
}
}
任何人都可以指出代码中的错误吗?
答:
2赞
kiner_shah
10/6/2023
#1
请改用两个指针。
public static Node constructLL(int[] arr) {
Node head = null;
Node end = null;
for (int a : arr) {
if (head == null) {
head = new Node(a);
end = head;
}
else {
end.next = new Node(a);
end = end.next;
}
}
return head;
}
替代解决方案 - 从末尾遍历数组并插入到前面的列表中:
public static Node constructLL(int[] arr) {
Node head = null;
for (int i = arr.length - 1; i >= 0; --i) {
Node temp = new Node(arr[i]);
temp.next = head;
head = temp;
}
return head;
}
评论
0赞
kiner_shah
10/9/2023
@user85421,谢谢,我编辑了我的答案以包含这个替代解决方案。
评论
static
Node