ListNode基本用法
链表的结构
链表:
由一系列结点组成(链表中每一个元素称为节点),结点可以在运行时动态生成
每个结点包含两个部分:
一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
构建链表
static class ListNode {
int val;//结点值
ListNode next;//下一个结点
public ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
反转链表核心代码
public static ListNode recursion(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode newhead = recursion(head.next);
head.next.next = head;
head.next = null;
return newhead;
}
原始链表
public static void main(String[] args) {
ListNode node5 = new ListNode(5, null);
ListNode node4 = new ListNode(4, node5);
ListNode node3 = new ListNode(3, node4);
ListNode node2 = new ListNode(2, node3);
ListNode node1 = new ListNode(1, node2);
ListNode prev= recursion(node1);
System.out.println(prev);
}



