Java实现ListNode和LinkedList
定义ListNode类
class ListNode {
//定义成员变量
int val; //结点的值
ListNode next; //下一个结点
//定义构造方法
//无参构造,初始化val为0
public ListNode() {
this.val = 0;
}
//有参构造,设置val为传参的值
public ListNode(int val) {
this.val = val;
}
}
定义LinkedList类
class LinkedList {
//定义成员变量
ListNode head; //初始化头结点
// 构造方法
//无参构造,初始化返回的链表头结点为0
public LinkedList() {
this.head = new ListNode();
}
//有参构造,返回的链表头结点为传参的head
public LinkedList(ListNode head) {
this.head = head;
}
}
在ListNode和LinkedList类中重写toString方法,方便我们打印结果。
public class MyLinkedList {
public static void main(String[] args) {
ListNode head = new ListNode();
head.next = new ListNode(1);
System.out.println(head);
LinkedList list1 = new LinkedList(head);
LinkedList list2 = new LinkedList();
System.out.println(list1);
System.out.println(list2);
}
}
class ListNode {
int val;
ListNode next;
public ListNode() {
this.val = val;
}
public ListNode(int val) {
this.val = val;
}
@Override
public String toString() {
return "ListNode{" +
"val=" + val +
", next=" + next +
'}';
}
}
class LinkedList {
ListNode head;
public LinkedList() {
this.head = new ListNode();
}
public LinkedList(ListNode head) {
this.head = head;
}
@Override
public String toString() {
return "LinkedList{" +
"head=" + head +
'}';
}
}
运行结果为
ListNode{val=0, next=ListNode{val=1, next=null}}
LinkedList{head=ListNode{val=0, next=ListNode{val=1, next=null}}}
LinkedList{head=ListNode{val=0, next=null}}