面试必刷Top101
King Rat
I am the Rat King
展开
-
链表中环的入口结点
题意给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围n\le10000n≤10000,1原创 2022-08-02 09:37:26 · 182 阅读 · 0 评论 -
二叉树的简单编程题--二叉树深度,镜像,对称,判断等
可以使用递归完成,首先当节点为空returnfalse,当一个节点的左子树和右子树都为空说明是叶子节点,叶子节点的路径值等于sum则returntrue,最后只需判断叶子节点是否有true,有答案为true,否则为false.给定一个二叉树root和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum的路径。深度是指树的根节点到任一叶子节点路径上节点的数量。3.路径只能从父节点到子节点,不能从子节点到父节点。...原创 2022-07-29 20:39:12 · 103 阅读 · 0 评论 -
二维数组中的查找
题意:示例:题解:解法一(多次二分查找)由于数组的每一行是递增的,可以逐行进行二分查找。解法二(二维的二分查找)解法三(利用数组的性质)对于数组的任何一个数字i,可以发现数组左边或上面的数字都小于i,下面或右面的数组元素都大于i,但是如果从数组的右上角(或左下角)为起始条件,可以发现数组左边元素都小于i,下面的元素大于i,这样的话就可以进行二分。...原创 2022-07-11 12:59:50 · 244 阅读 · 0 评论 -
二叉树的前,中,后序遍历
题意:示例:题解:前序是根左右,中序是左根右,后序是左右根1.递归写法 2.非递归写法,是用栈模拟函数递归调用的过程。原创 2022-07-01 19:50:44 · 145 阅读 · 0 评论 -
分糖果问题
题意:示例:题解:首先给有人分1个糖果,其次正向遍历,如果分数大于前一个人,则糖果数为前一个人的糖果数+1,但无法保证当前拥有的糖果数和后一个人的糖果数满足要求,所以逆向遍历,如果分数大于后一个人且糖果数小于等于后一个人的糖果数,则糖果数为后一人的糖果数+1......原创 2022-06-27 12:39:21 · 315 阅读 · 0 评论 -
删除有序链表中重复的元素-II
题意:示例:题解:由于需要删除所有重复节点,包括第一个出现的节点,所以引入新节点作为头节点,对于每个节点i,往后遍历找到与节点i不相等的节点j,通过判断节点i,j位置看i节点是否重复,如果重复,i节点的上一个节点pre直接指向j节点,舍弃掉重复节点。...原创 2022-06-27 12:04:35 · 123 阅读 · 0 评论 -
删除有序链表中重复的元素-I
题意:示例:题解:原创 2022-06-27 11:13:47 · 272 阅读 · 0 评论 -
判断一个链表是否为回文结构
题意:示例: 题解:1.通过遍历链表,把链表元素存入数组中,然后遍历数组通过判断首尾是否相等判断是否是回文 2.快慢指针快指针的速度为慢指针的两倍,当快指针为空时,满指针走到中间,然后将满指针所指向的链表反转,然后遍历比较值是否相等判断是否是回文字符串。...原创 2022-06-27 10:59:24 · 225 阅读 · 0 评论 -
两个链表的第一个公共结点
题意:示例:题解:1.set集合首先遍历第一个链表,将节点存入set集合,然后遍历第二个节点判断set是否包含。 2.双指针原创 2022-06-23 12:31:41 · 44 阅读 · 0 评论 -
链表中倒数最后k个结点
题意:示例1题解:1.首先遍历链表统计节点数量s,然后重新遍历链表找到第 s-k+1个节点,这个节点以及后面的节点就是所求的结果 2. 快慢指针两个指针分别指向头节点,让快指针先走k步,然后快指针和慢指针同时走当快指针为空,慢指针就是最后k个节点。 3.其他用栈也可以...原创 2022-06-23 11:57:42 · 125 阅读 · 0 评论 -
判断链表中是否有环
题意:示例:题解:1.哈希:遍历链表,将链表元素记录,如果遇到相同 元素相当于有环。 2.快慢指针满指针以速度1遍历,快指针以速度2遍历,如果有环一定 慢指针==快指针,无环快指针遍历结束值为null代码易错点:由于快指针两次next,快指针本身不等于null,快指针的next节点不能为空,否则会空指针异常。...原创 2022-06-23 10:19:21 · 61 阅读 · 0 评论 -
合并两个排序的链表
题意:示例:题解:1.可以新建一链表,用双指针的思想,将两个链表有序插入的新链表。2.为节省空间,把list2的值有序插入到list1,基本思想:如果list2.val=list1.val ,list1=list1.next;当list1结束,要把list2整体加到list1后....原创 2022-06-23 09:40:31 · 65 阅读 · 0 评论 -
链表内指定区间反转
题意:示例:题解:首先把m-n区间内的节点改变指向,然后让首尾反转即原本指向区间首节点现在指向尾节点,区间首节点指向遍历的下一个节点。注意:需要添加一个虚拟首节点,如示例2。原创 2022-06-21 11:02:04 · 164 阅读 · 0 评论 -
面试算法题--反转链表
题意题解1.尾插法新建一个链表,然后遍历原链表,把原链表的元素通过尾插法插入进链表。会消耗额外空间。 2.改变链表指向 新建两个节点pre,next,然后通过遍历改变head的指向,单链表是找不到head的前一个节点的,所以用pre保存,head的指向改变后,无法找到head的下一个节点,所以用next保存。 3.可以用io写(耗时少)本人不会...原创 2022-06-18 20:15:26 · 91 阅读 · 0 评论