--- 链表相关 --- [06. 从头到尾打印链表](https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/) ```java class Solution { public int[s] reversePrint(ListNode head) { ListNode temp = head; int size = 0; while (temp != null) { temp = temp.next; size++; } int[] result = new int[size]; int index = size - 1; while (head != null) { result[index--] = head.val; head = head.next; } return result; } } ``` ```java class Solution { public int[] reversePrint(ListNode head) { Stack stack = new Stack(); ListNode temp = head; while (temp != null) { stack.push(temp); temp = temp.next; } int size = stack.size(); int[] print = new int[size]; for (int i = 0; i < size; i++) { print[i] = stack.pop().val; } return print; } } ``` [22. 链表中倒数第 k 个节点](https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/) ```java class Solution { public ListNode getKthFromEnd(ListNode head, int k) { int length = 0; ListNode temp = head; while (temp != null) { temp = temp.next; length++; } for (int i = 0; i < length - k; i++) { head = head.next; } return head; } } ``` ```java class Solution { public ListNode getKthFromEnd(ListNode head, int k) { ListNode h0 = head; for (int i = 0; i < k; i++) { h0 = h0.next; } while (h0 != null) { h0 = h0.next; head = head.next; } return head; } } ``` [24. 反转链表](https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/) ```java class Solution { public ListNode reverseList(ListNode head) { if (head == null || head.next == null) { return head; } ListNode h1 = head; ListNode h2 = head.next; ListNode h3 = null; h1.next = null; while (h2 != null) { h3 = h2.next; h2.next = h1; h1 = h2; h2 = h3; } return h1; } } ``` ```java class Solution { public ListNode reverseList(ListNode head) { // 递归终止条件是当前为空,或者下一个节点为空 if (head == null || head.next == null) { return head; } // 这里的 h1 就是最后一个节点 ListNode h1 = reverseList(head.next); // 如果链表是 1->2->3->4->5,那么此时的 cur 就是 5 // 而 head 是4,head的 下一个是 5,下下一个是空 // 所以 head.next.next 就是 5->4 head.next.next = head; // 防止链表循环,需要将 head.next 设置为空 head.next = null; // 每层递归函数都返回 h1,也就是最后一个节点 return h1; } } ```