
剑指offer
该专栏主要记载了牛客上剑指offer的题目以及解题思路,可能效率不是最高的,但是具有一定的参考价值。
花香陶泽
这个作者很懒,什么都没留下…
展开
-
链表篇: 04-寻找两个链表的第一个公共结点
第二种方案是,需要两个指针 p1,p2 先去让p1 遍历 pHead1,让 p2遍历 pHead2,当p1遍历完毕之后重新遍历pHead2,反之 p2 则取遍历 pHead1 然后,当两个遍历再某个节点时,遇到了相同的值,那么后续的节点就是链表的相同部分。从题目中可以看到,两个链表有长度差,这里可以先让长度比较长的链表先把长度差走完,这里假设为 pHead1, 先让 pHead1 把长度差走完,之后让两个链表同时往后进行遍历,最后当两个链表的值相等时,就直接返回。公共部分部分的长度是 z。原创 2024-08-04 11:48:05 · 404 阅读 · 0 评论 -
链表篇:03-合并有序链表
使用双指针,一个指针指向头节点,然后另外一个指针进行移动。让其头节点保持不动,最后循环遍历两个链表,将其挂到头指针所在的节点上。tempNew 指针,移位指针,往后移动,用于遍历头节点所在的链表。temp 守卫节点,用于指向头节点,防止头节点丢失。t1 链表1的头指针, 移位指针,用于遍历链表1。t2 链表2的头指针,移位指针,用于遍历链表2。原创 2024-07-31 22:32:01 · 264 阅读 · 0 评论 -
链表篇-02.从尾到头打印链表(反转链表)
链表从尾到头打印链表, 我的思路是 用三个指针,第一个指针(pre)指向指向头节点的前一个位置,第二个指针(cur)指向头节点,然后依次往后执行,第三个指针用于临时记录第二个指针的下一个位置。原创 2024-07-29 22:16:20 · 305 阅读 · 0 评论 -
链表篇: 01-从尾到头打印链表
直接往数组中加入数据,然后通过Java提供的工具类(coollections) 直接进行数组的反转。原创 2024-07-28 21:01:08 · 205 阅读 · 0 评论