题目说明
输入链表的头结点,要求给出一个方法,输出一个和原链表反转的链表
分析及其他
题意很清晰,就是要反转一个单项链表,但是编码的时候,我发现自己总是卡住,思路不清晰,借此记录一下
代码实现
public ListNode reverse(ListNode head) {
//边界检查
if (head == null || head.next == null)
return head;
//定义一个变量,用于接收结果
//定义一个变量,用于保存临时信息
//这里我理解,将当前值赋给result,并且将原result作为新result的next,同时,需要打断当前值的next
ListNode result = null;
ListNode temp = null;
while (head != null) {
//保存head.next指向的引用
temp = head.next;
//将当前值作为结果,并将上一次的结果,作为新的结果
//同时,打断了原头的next引用
head.next = result;
result = head;
//将head.next的引用,赋给head,继续下一步
head = temp;
}
}
其他
虽然代码简单,但是绕不过来是真费劲😂😂😂