![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
文章平均质量分 64
刷题,提高对代码掌握能力
小倪同学 -_-
天道酬勤当至理,恒心定得上琼楼
展开
-
几道简单的二叉树OJ题
文章目录单值二叉树检查两颗树是否相同对称二叉树二叉树的前序遍历 单值二叉树 题目简介 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回 true;否则返回 false。 LeetCode 965 思路分析 利用递归思想,判断根结点和它左右子结点是否相同,如果不同返回错误,否则继续向下访问,直到访问到空结点。 代码实现 bool isUnivalTree(struct TreeNode* root){ if(root==NULL) r原创 2021-09-12 17:38:13 · 144 阅读 · 1 评论 -
判断链表的回文结构
题目简介 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例 链表的回文结构 思路分析 第一步:利用快慢指针找中间结点mid 找法看几道简单的链表题第三题 第二步:翻转中间结点及其之后的结点 翻转的方法看几道简单的链表题第二题 第三步:从两个头结点往后迭代。 代码实现 //找中间结点 struct ListNode* FindMidNode(st原创 2021-09-01 14:51:13 · 65 阅读 · 0 评论 -
链表试题之链表分割
题目简介 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 链表分割 思路分析 代码实现 struct ListNode* partition(pHead,x) { // write code here struct ListNode* greatertail, *greaterhead, *lesstail, *lesshead; greaterhead = greatertai原创 2021-09-01 14:29:05 · 214 阅读 · 0 评论 -
环形链表相关练习
文章目录判断链表是否为环形链表寻找环形链表的结点 判断链表是否为环形链表 题目简介 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 如果链表中存在环,则返回 true 。 否则,返回 false 。 LeetCode 141 解题原创 2021-08-31 15:38:34 · 93 阅读 · 0 评论 -
几道简单的链表题
文章目录1.删除链表指定值2.反转一个单链表3.找链表中间结点4.找倒数第K个结点5.合并两个有序链表6.求相交链表的相交结点 1.删除链表指定值 题目简介 给你一个链表的头节点head和一个整数 val ,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点 。 LeetCode 203 思路分析 创建一个新链表,将原链表中所有数值不是val的结点尾插到新链表上。 代码实现 struct ListNode* removeElements(struct ListNode* head原创 2021-08-30 16:40:54 · 210 阅读 · 0 评论 -
LeetCode 26.删除有序数组中的重复项
文章目录题目简介思路分析代码实现 题目简介 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 LeetCode 26 思路分析 创建双指针str1和str2,当str1和str2值相等时,str1向后移动一位,当str1和str2值不相等时,将str2向后移动一位并把str1的值赋值给str2然后将str1向后移动一位 如下图 代码实现 int原创 2021-08-26 17:28:04 · 59 阅读 · 0 评论 -
LeetCode 27.移除元素
文章目录题目简介思路分析代码实现 题目简介 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 LeetCode 27 思路分析 利用双指针str1和str2,用str1指向的元素与要删除的元素比较,如果相等将str1向后移动一位,否则将str1指向的数据赋值给str2,并将str1和str2都向后移动原创 2021-08-26 16:57:41 · 61 阅读 · 0 评论