数据结构与算法 / 题解
文章平均质量分 81
数据结构与算法的C语言刷题系列
倔强的石头_
C/C++领域优质创作者,华为云云享专家,腾讯云创作之星,腾讯云TDP-先锋会员,阿里云专家博主,支付宝社区优秀博主、社区问答官,极星会KOL
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构与算法 经典例题】判断一颗二叉树是否是平衡二叉树
给定一个二叉树,判断它是否是平衡二叉树。平衡二叉树(Balanced Binary Tree)是一种特殊的二叉树,其中任一节点的左、右两个子树的高度差的绝对值不超过1,并且左、右两个子树都是一棵平衡二叉树。原创 2024-07-22 08:34:33 · 1497 阅读 · 24 评论 -
【数据结构与算法 经典例题】翻转二叉树
翻转二叉树(也称为二叉树的镜像)是指对二叉树进行遍历,并交换每个节点的左右子树。通过递归调用可以快速简单的完成任务原创 2024-07-22 08:32:45 · 536 阅读 · 9 评论 -
【数据结构与算法 经典例题】判断一棵树是否是另一棵树的子树
给你两棵二叉树root和subRoot。检验root中是否包含和subRoot具有相同结构和节点值的子树。如果存在,返回true;否则,返回false。二叉树tree的一棵子树包括tree的某个节点和这个节点的所有后代节点。tree也可以看做它自身的一棵子树。原创 2024-07-16 12:11:43 · 674 阅读 · 10 评论 -
【数据结构与算法 经典例题】判断二叉树是否对称
给你一个二叉树的根节点root, 检查它是否轴对称。判断一颗二叉树是否对称的解题思路可以通过比较两个子树是否镜像对称来实现。具体地说,如果一棵树的左子树与右子树是镜像对称的,那么这棵树就是对称的。这个问题可以通过递归来解决。原创 2024-07-16 08:30:36 · 816 阅读 · 5 评论 -
【数据结构与算法 经典例题】判断两棵二叉树是否相同
给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。解题思路:通过递归调用,对两棵树的每一个节点进行判断原创 2024-07-11 08:19:31 · 774 阅读 · 13 评论 -
【数据结构与算法 经典例题】单值二叉树的判断
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回false。实现思路:将每个节点看做是根结点,与他的左孩子和右孩子的值进行对比是否相同原创 2024-07-10 10:02:15 · 547 阅读 · 18 评论 -
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
栈和队列在数据结构上是两种完全不同的类型(栈是后进先出,队列是先进先出),解决问题的关键就在于如何巧妙地利用两个栈的后进先出的特性来模拟队列先进先出的行为。我们定义两个栈,stack1和stack2。其中一个栈(例如stack1)用于入队操作,另一个栈(例如stack2)用于出队操作。原创 2024-06-24 00:05:01 · 1340 阅读 · 22 评论 -
【数据结构与算法 刷题系列】求带环链表的入环节点(图文详解)
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。原创 2024-06-17 22:25:04 · 1460 阅读 · 17 评论 -
【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。这道题的解题思路主要涉及到“快慢指针”或“双指针”的方法。这种方法的关键在于,如果存在环,那么快指针最终会追上慢指针。原创 2024-06-17 22:21:46 · 1293 阅读 · 5 评论 -
【数据结构与算法 经典例题】括号匹配问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。括号匹配问题是一个比较有实际意义的问题,问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配。使用栈的后进先出结构可以很好的解决这个问题原创 2024-06-11 00:07:39 · 1768 阅读 · 21 评论 -
【数据结构与算法 经典例题】随机链表的复制(图文详解)
要完成一个带随机指针的链表的复制,有一个巧妙的办法:分三步走——完成节点数据拷贝,完成节点的随机指针拷贝,完成节点的next指针拷贝原创 2024-06-05 00:35:17 · 1645 阅读 · 18 评论 -
【数据结构与算法 经典例题】反转链表(图文详解)
通过三个指针n1,n2,n3来实现链表的反转原创 2024-06-03 18:59:47 · 973 阅读 · 13 评论 -
【数据结构与算法 经典例题】链表的回文结构(图文详解)
回文结构(Palindromic structure)是指一个序列或字符串从前往后读和从后往前读是相同的。计算机科学中,回文结构可以出现在各种数据结构中,如字符串、数组等。对于字符串来说,判断一个字符串是否为回文字符串是一个常见的问题。判断方法是从字符串的两端开始比较字符是否相等,如果都相等,则继续比较下一对字符,直到中间位置。如果在任何时刻存在一对不相等的字符,则该字符串不是回文。对于数组来说,直接采取上述方法便可以判断是否是回文结构。但对于单链表来说,则是行不通的,因为单链表只能顺序访问,不能原创 2024-06-04 22:24:24 · 3098 阅读 · 8 评论 -
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。方法一:计数器方式先遍历链表,求出链表长度count。倒数第k个节点,就是正数第count-k+1个节点。再次遍历链表,找到该节点,返回数据方法二:双指针方式定义两个指针slow和fast,初始都指向第一个节点初始fast指针先走k步,然后slow指针和fast指针每次各走一步,当fast指针指向空时,slow指针所指向的节点就是倒数第k个节点原创 2024-05-29 00:05:01 · 1012 阅读 · 20 评论 -
【数据结构与算法 经典例题】相交链表求交点
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。方法一:双循环对比法(暴力解法效率较低,不建议采用)方法二: 双指针法原创 2024-05-27 00:15:47 · 1004 阅读 · 17 评论 -
【数据结构与算法 刷题系列】移除链表元素
想要移除链表的指定元素,有两种方式第一种方式 :删除原链表的指定元素第二种方式 :创建新链表 尾插不属于指定元素的节点原创 2024-05-25 23:16:29 · 917 阅读 · 7 评论 -
【数据结构与算法 刷题系列】合并两个有序链表
合并两个有序链表问题的一个简单高效的解题思路——创建一个新的链表,将两个链表的节点元素按大小顺序逐个尾插到新的链表中,最后返回新链表的首节点地址原创 2024-05-14 00:06:22 · 959 阅读 · 13 评论 -
【数据结构与算法 刷题系列】环形链表的约瑟夫问题
解决思路是用环形链表来模拟报数和离开解决问题分三步1. 实现申请单个环形链表的方法2.创建环形链表3.对链表循环遍历,实现报数和删除,返回最后剩下的节点的编号原创 2024-05-13 20:31:42 · 1360 阅读 · 10 评论 -
【数据结构与算法 刷题系列】求链表的中间结点
想要求得链表的中间节点,有两种方法,分别是计数器方式和快慢指针方式计数器方式逻辑简单实现简单,效率低快慢指针方式对逻辑和细节要求较高,但效率也很高原创 2024-05-09 00:51:55 · 1392 阅读 · 11 评论
分享