首先我们了解下单向链表的结构
如图 head往后的节点上一个存着值val一个存着next表示下一个节点
翻转我们一般有两种方法
1 遍历法
public static Node reverseList(Node node){
Node pre = null;
Node next= null;
while(node){
// 备份next
next = node.next;
// 断节点
node.next = pre;
// 赋值截断节点
pre = node;
// 继续遍历未截断节点
node = next;
}
}
2.递归法
public Node reverse(Node head) {
if (head == null || head.next == null)
return head;
Node temp = head.next;
Node newHead = reverse(head.next);
temp.next = head;
head.next = null;
return newHead;
}