一个很经典的题目 在各种题库中出现频率也很高 因此这道题也很受面试官青睐
在第一次秋招第一次跑宣讲会的时候 作为小白板的我笔试竟然过了(可能是卷面相对来说工整一点吧) 第二天被面试官问道 “链表操作时需要注意什么” 那么 我们就谈谈这道题该注意什么:
1.链表操作最重要的一步就是判空 在任何时候都不要忘了空链表的情况
2.要记住头结点 防止丢失
3.注意每个引用的更新
4.要注意是否需要返回值 需要的话 考虑该返回什么
该题解题思路:
1.链表为空 或者只有一个节点的时候不需要操作 直接返回就可以
2.需要逆置的时候 我们需要先建立新的引用 保存头结点
3.建立两个引用 分别指向当前结点和它的前一个位置
4.当前位置非空的时候 进行逆置
创建一个引用 指向当前位置的下一个位置 当下一个位置为空的时候 说明已经逆置完了 将当前位置就可以设置为头结点
而逆置的核心操作就是交换当前位置与前一个位置之间的指向 交换之后要记得更新引用
5.在最后返回头结点即可
public class ListNode {
int val;
ListNode next;
ListNode(int v) {
this.val