public class LinkMethod {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数组,以空格分隔");
String[] numbersStr = sc.nextLine().split(" ");
int[] numbersArray = new int[numbersStr.length];
System.out.println("请输入一个数组,以空格分隔");
String[] numbersStr1 = sc.nextLine().split(" ");
int[] numbersArray1 = new int[numbersStr1.length];
//头插法
ListNode head=null;
for (int i = 0; i < numbersStr.length; i++) {
numbersArray[i] = Integer.parseInt(numbersStr[i]);
ListNode newNode=new ListNode( numbersArray[i]);
if(head==null){
//第一步:初始化头元素
head=newNode;
}else {
//第二步:新元素的指针指向旧元素
newNode.next=head;
//第三步:头指向新元素加入后的新链表
head=newNode;
}
}
//尾插法
ListNode head1=null;
//定义游标
ListNode temp=null;
for (int i = 0; i < numbersStr1.length; i++) {
numbersArray1[i] = Integer.parseInt(numbersStr1[i]);
ListNode newNode=new ListNode( numbersArray1[i]);
if(head1==null){
//初始化头元素
head1=newNode;
//初始化游标
temp=head1;
}else {
//循环游标,直至找到尾元素
while (temp.next!=null){
temp=temp.next;
}
//尾元素赋值新节点
temp.next=newNode;
}
}
sc.close();
}
}
class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
链表(头插法和尾插法)
于 2024-06-11 17:38:59 首次发布