精华题解
解法一:迭代 在遍历链表时,将当前节点的next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。 图解: Java参考代码: /*
public class ListNode {
int v
展开全文
精华题解
描述 输入一个链表,反转链表后,输出新链表的表头。 方法一 因为链表结尾是 null,所以让 pre 的值是 null, p 就表示我们的头部 因为 p 的 next 成员马上就要指向 pre, 如果不保存 p 的下一个节点就会使其丢失,所以通过临时变量 t 保存它 让 P 的 next 成员
展开全文
精华题解
算法思想一:双指针迭代 解题思路: (1)定义两个指针: pre 和 cur ;pre 在前 cur 在后。 (2)每次让 pre 的 next 指向 cur ,实现一次局部反转 (3)局部反转完成之后, pre 和 cur 同时往前移动一个位置 (4)循环上述过程,直至 pre 到达链
展开全文
精华题解
描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 算法 比较方便的做法是设置一个虚拟节点 fake,而它的 next 指向的地址才是真正的表头,然后开始的时候将它作为 pre 指针。在循环中,每次都将要接入的新节点接到 pre 后面,然后更新 pre
展开全文