反转单链表和双链表。
题目来源:https://leetcode.com/problems/reverse-linked-list
题目难度:Easy
解答1[Java]:
核心思想
设计两个指针,一个 prev指向前一个节点 ,一个cur 指向当前节点。最初的时候,prev指向null,cur指向第一个节点。最后 cur 指向 null 的时候,prev 刚好指向最后一个节点。
代码
1 | /** |
解答2[Java]:
核心思想
主要是利用 head.next.next = head;
相当于把当前节点的下一个节点指向了当前节点。递归调用到最后,p 一直是指向最后一个节点,并且不断被返回到上一层调用的。
代码
1 | /** |
拓展:反转双向链表
核心思路
代码
双向链表节点定义
1 | public class DoubleNode { |
算法
1 | class Solution { |
完整测试代码
1 | public class Code_07_ReverseList { |