1 背景
- 基础算法题
- 各种算法题是为了锻炼算法思维,算法题要不断反复刷,每次都会有不通的领悟
2 解体思路
首先解体思路不要直接想代码怎么写,要先用语言构建出解题逻辑
头节点变成尾节点,尾节点变成头节点
当前节点的下一个节点变成当前节点的上一个节点
3 代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
//上一个节点
ListNode pre = null ;
//下一个节点
ListNode next = null;
//循环的当前节点
ListNode curr = null;
//循环
while(head!=null){
//记录当前节点值
curr = head;
//记录当前节点值的下一个节点
next = head.next;
//当前节点的下一个节点为上一个节点
head.next = pre;
//上一个节点为当前节点
pre = curr;
//循环的链表位置进行变化
head = next;
}
return pre;
}
}