请编写算法,实现将给定的数组转化成对应的单链表。例如输入的整型数组为{1,2,3,4,5},得到的单链表为head->1->2->3->4->5->null。注意:本关中提到的单链表中的结点序号从1开始计数,即如果得到的单链表为{7,5,13,4,9},则值为7的结点对应的序号为1,其余依次递增。 /**
* 功能:实现通过数组初始化单链表。
* 参数:存储将要生成的单链表的结点的值的数组。
* 返回值:与数组的值对应的单链表。如果是空链表则返回null。
* / /**
*功能:链表节点的定义
* */
public class Node { private int data;
private Node next; public Node(int data) {
this.data = data;
this.next = null;
} public void setData(int data) {
this.data = data;
} public int getData() {
return data;
} public Node getNext() {
return next;
} public void setNext(Node next) {
this.next = next;
}
} /**
*功能:单链表定义
* */public class LinkList { Node head; public LinkList() {
head = null;
}
}public static LinkList listInit_L(int[] arrs) {
//添加代码区域
}
谁能给推荐点关于链表学习的好资源啊!
* 功能:实现通过数组初始化单链表。
* 参数:存储将要生成的单链表的结点的值的数组。
* 返回值:与数组的值对应的单链表。如果是空链表则返回null。
* / /**
*功能:链表节点的定义
* */
public class Node { private int data;
private Node next; public Node(int data) {
this.data = data;
this.next = null;
} public void setData(int data) {
this.data = data;
} public int getData() {
return data;
} public Node getNext() {
return next;
} public void setNext(Node next) {
this.next = next;
}
} /**
*功能:单链表定义
* */public class LinkList { Node head; public LinkList() {
head = null;
}
}public static LinkList listInit_L(int[] arrs) {
//添加代码区域
}
谁能给推荐点关于链表学习的好资源啊!
使用的话直接用sdk中的功能 :list转array array转list
//添加代码区域
LinkList ll=nwq LinkList();
ll.head=new Node(arrs[arrs.length-1]);
for(int i=arrs.length-2;i>=0;i--){
node=new Node(arrs[i]);
node.setNext(head.next);
head=node;
}} 大概就是这样
//添加代码区域
LinkList ll=nwq LinkList();
ll.head=new Node(arrs[arrs.length-1]);
for(int i=arrs.length-2;i>=0;i--){
node=new Node(arrs[i]);
node.setNext(ll.head.next);
ll.head=node;
}
return ll;}
去看jdk中的LinkedList源代码吧。
public static void showInfo(LinkList head){
Node temp = head.head;
while(temp != null){
System.out.println(temp.getData());
temp = temp.getNext();
}
}
public static LinkList listInit_L(int[] arrs) {
int count=0;
Node tail=null;
LinkList head = new LinkList();
for(int i=0;i<arrs.length;i++){
Node d = new Node(arrs[i]);
if(head.head == null){
head.head = d;
}else{
tail.setNext(d);
}
tail = d;
count++;
}
return head;
}
我想让它在传入数组为空的时候,返回字符null,怎么修改。请大侠帮忙指点。
//添加代码区域
LinkList ll=nwq LinkList();
ll.head=new Node(arrs[arrs.length-1]);
for(int i=arrs.length-2;i>=0;i--){
node=new Node(arrs[i]);
node.setNext(head.next);
head=node;
}} 大概就是这样