package ListNode02;
public class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
//利用头插法
public static ListNode StartAdd(ListNode head, ListNode listNode){
ListNode listNode1 = new ListNode(head.val);
listNode1.next = listNode;
listNode = listNode1;
if (head.next !=null){
listNode = StartAdd(head.next,listNode);
}
return listNode;
}
//向链表内添加数据
public void add(int val){
ListNode listNode = new ListNode(val);
if (this.next == null){
this.next = listNode;
}else {
this.next.add(val);
}
}
//输出链表内的全部数据
public void get(){
System.out.println(this.val);
if (this.next != null){
this.next.get();
}
}
public static void main(String[] args) {
ListNode head = new ListNode(1);
head.add(2);
head.add(3);
head.add(4);
head.add(5);
//反转链表
if (head != null){
ListNode listNode = new ListNode(head.val);
if (head.next != null){
listNode = StartAdd(head.next,listNode);
listNode.get();
}
}
}
}
利用头插法和递归实现链表反转
最新推荐文章于 2025-05-15 20:49:36 发布