LeetCode 刷题
文章平均质量分 98
叶落闲庭
驾驭命运的舵是奋斗。不抱有幻想,不放弃一点机会,不停止一日努力。
展开
-
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
我的思路是先求出整个链表的长度,要删除倒数第n个节点,则将链表的长度减去n得到要删除的节点的前一个节点的索引,将链表长度减n+1得到要删除的节点的索引,定义两个指针,一个指针表示要删节点的前一个节点,另一个表示要删的节点,根据两个索引值对链表进行遍历,遍历索引值减1次就能得到索引对应的节点处,然后将要删节点的前一个节点的next指向要删的节点的next,完成倒数第n个节点的删除,当要删除的是第一个节点时(即删除倒数第链表长度个节点),直接改变头节点的位置即可。原创 2023-10-24 21:28:40 · 82 阅读 · 0 评论 -
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
创建Map集合,遍历数组,根据当前数字作为键的参数拿到集合中的值count,再判断这个count值是否为空,若为空,则默认这个值为1,将其和当前数字添加到Map集合中,若不为空,则这个值自增1,表示第二次出现这个数字,再将其和当前数字添加到Map集合中,覆盖之前的键值对,当遍历完这个数组后,再对Map集合进行遍历,根据数字作为键的参数得到它所出现的次数,判断这个此时是否等于1,若等于1,即表示当前数字只出现了一次,返回这个数字即可。原创 2023-10-23 21:31:49 · 146 阅读 · 0 评论 -
【力扣刷题】二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树
二叉树不为空,则定义一个栈,用来实现二叉树的中序遍历,定义一个节点指针cur,表示当前节点,当cur不为空或者栈不为空时,进入循环,在循环内再嵌套一个条件为cur不为空的循环,在嵌套的循环中将当前节点加入到栈中,并将当前节点指向当前节点的左子节点,直到将所有的左子节点均添加到栈中,内嵌循环结束,外部循环继续执行,将此时的栈顶元素弹出,并将弹出的节点值加入到集合中,将cur指向弹出的栈顶元素的右子节点,循环遍历,直到栈为空时退出循环,返回集合。原创 2023-10-22 20:51:19 · 101 阅读 · 0 评论 -
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
用数组来实现栈的方法相对比较简单,首先定义一个数组,用来模拟栈的功能,定义一个整型变量作为栈顶指针(`int top`),为这个数组栈定义一个带形参的构造方法,参数表示数组的默认长度(`int capacity`),即栈的容量。原创 2023-10-21 20:39:51 · 154 阅读 · 0 评论 -
【力扣刷题】回文链表、环形链表、合并两个有序链表
首先是要对该链表进行非空校验,若是空链表,直接返回fasle,否则,执行其它逻辑,按照回文链表的规律,可以有这样一个思路:若它是回文链表,可先找到他的前半个回文链表的最后一个节点,通过这个节点,就能找到开始回文的下半个链表的最后一个节点,从该节点处,将后半个回文链表进行整体反转,然后再定义指针进行遍历,从前半个回文链表的头开始作为p1指针,后半个回文链表的头作为p2指针,遍历整个回文链表,判断它们的值是否相同,若不相同,则不是回文链表,否则就是回文链表。原创 2023-10-20 20:02:34 · 334 阅读 · 0 评论 -
【力扣刷题】两数求和、移动零、相交链表、反转链表
这道题可以通过利用Set集合的特性进行求解,分析题目可以看出是要我们在两个单链表中找出两个链表开始相交时的节点,那么我们就可以先将一个链表存入Set集合,再遍历第二个链表利用Set集合的contains()方法判断当前集合中是否包含第二个集合的节点,若包含,则直接返回当前节点,不包含则继续遍历,遍历完仍未找到,则返回null。原创 2023-10-07 21:06:20 · 619 阅读 · 0 评论