1. 迭代解法
leetcode 206 号算法题:反转单链表【数据结构与算法】
代码如下:
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
2.递归解法
2.1 为什么可以使用递归
leetcode 206 号算法题:反转单链表【数据结构与算法】
2.2 递归解法思路
leetcode 206 号算法题:反转单链表【数据结构与算法】
代码如下:
public ListNode reverseList(ListNode head) {
// 1. 递归终止条件
if (head == null || head.next == null) {
return head;
}
ListNode p = reverseList(head.next);
head.next.next = head;
head.next = null;
return p;
}
在刷题的时候:
如果你觉得自己数据结构与算法基础不够扎实,那么请加抖码课堂的公众号,这里包含了一个程序员 5 年内需要的所有算法知识
如果你感觉刷题太慢,或者感觉很困难,或者赶时间,那么请加抖码课堂的公众号。这里用 365 道高频算法题,带你融会贯通算法知识,做到以不变应万变
回溯、贪心和动态规划,是算法面试中的三大难点内容,如果你只是想搞懂这三大难点内容 请加抖码课堂的公众号