我有一个链接列表:20 - > 30 - > 40 - > 50,此链接列表的引用为L
这是我的类和主要方法,我调用了一个方法addAtFirst(),如下所示:
class LinkedListInsertingNode {
Node head=null;
class Node{
int data;
Node next;
LinkedListInsertingNode L;
public Node(int data){
this.data=data;
next=null;
}
public Node(LinkedListInsertingNode L){
this.L=L;
next=null;
}
}
public void append(int data){
Node new_node=new Node(data);
if(head==null){
head=new Node(data);
return;
}
//new_node.next=null;
Node last;
last=head;
while(last.next!=null)
{
last=last.next;
}
last.next=new_node;
//return;
}
public void addAtFirst(int data,LinkedListInsertingNode L)
{
// I want to add my code here..
}
public static void main(String[] args) {
LinkedListInsertingNode L=new LinkedListInsertingNode();
L.append(10);
L.append(20);
L.append(30);
L.append(40);
L.append(50);
L.addAtFirst(5,L);
L.printList();
现在,我该如何添加" 10"在不知道头部的情况下,在我的链接列表的第一个位置。也不要使用任何方法。
所以最后,List应该是这样的:10 - > 20 - > 30 - > 40 - > 50
在调用方法addAtFirst()时,我传递元素和链接列表。 在我的代码中我知道Head元素,但是假设我们不知道Link-List的头部那么我们如何在第一个位置添加元素?
谢谢..!
答案 0 :(得分:0)
您可以创建一个新节点并将其与头节点交换,如:
public class LinkedListInsertingNode {
Node head = null;
class Node {
int data;
Node next;
LinkedListInsertingNode L;
public Node(int data) {
this.data = data;
next = null;
}
public Node(LinkedListInsertingNode L) {
this.L = L;
next = null;
}
}
public void append(int data) {
Node new_node = new Node(data);
if (head == null) {
head = new Node(data);
return;
}
//new_node.next=null;
Node last;
last = head;
while (last.next != null) {
last = last.next;
}
last.next = new_node;
//return;
}
public void addAtFirst(int data, LinkedListInsertingNode L) {
// I want to add my code here..
Node node = new Node(data);
node.next = head;
head = node;
}
private void printList() {
Node node = head;
while (node != null) {
System.out.println(node.data);
node = node.next;
}
}
public static void main(String[] args) {
LinkedListInsertingNode L = new LinkedListInsertingNode();
L.append(10);
L.append(20);
L.append(30);
L.append(40);
L.append(50);
L.addAtFirst(5, L);
L.printList();
}
}