![](https://img-blog.csdnimg.cn/20200416133107511.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法与数据结构实战
分享经典数据结构算法题的解决经验,题目来源于LeetCode
JunSIr_#
软件工程大三在读,工作语言Java/Go
展开
-
数据结构-二叉树-翻转二叉树
数据结构-二叉树-翻转二叉树问题描述翻转一棵二叉树示例输入 4 / \ 2 7 / \ / \1 3 6 9输出 4 / \ 7 2 / \ / \9 6 3 1分析适用中序遍历即可解决这个问题核心代码/*中序遍历的应用->一定要中序遍历*/Status FlipBT...原创 2019-11-29 19:38:05 · 623 阅读 · 0 评论 -
数据结构-二叉树-求路径总和
数据结构-二叉树-求路径总和问题描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \...原创 2019-11-29 18:27:45 · 677 阅读 · 1 评论 -
Get二叉树的最大深度
数据结构-二叉树-获得二叉树的最大最小深度问题描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点示例给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2 (3->9)核心代码int BiT...原创 2019-11-29 16:36:46 · 909 阅读 · 1 评论 -
数据结构-树-判断平衡二叉树
数据结构-树-判断平衡二叉树题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7return true给定二叉树 [1,2,2,3,3,null,...原创 2019-11-29 14:45:17 · 609 阅读 · 0 评论 -
将有序数组转换为平衡的二叉搜索树
数据结构-树-将有序数组转换为二叉搜索树问题描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:给定有序数组: [-10,-3,0,5,...原创 2019-11-29 00:42:26 · 1203 阅读 · 1 评论 -
判断对称二叉树
数据结构-树-对称二叉树问题描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 `[1,2,2,3,4,4,3]` 是对称的 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 `[1,2,2,null,3,null,3]` 则不是镜像对称的 1 / \ 2 2 \ \ 3 3分析初始条件,...原创 2019-11-28 12:21:00 · 719 阅读 · 0 评论 -
数据结构-树-判断两个树是否相同
数据结构-树-判断两个树是否相同问题描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的示例1输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true ...原创 2019-11-27 16:38:22 · 2125 阅读 · 0 评论 -
判断回文链表
数据结构-链表-回文链表问题描述请判断一个链表是否为回文链表示例输入: 1->2输出: false示例输入: 1->2->2->1输出: true分析回文链表一定是偶数,可以对半分,利用栈结构先进后出的特点,前半部分遍历进栈,后半部分遍历与出栈元素依次对比核心代码Status Palindrome(LinkList *L , int pos ) ...原创 2019-11-27 02:19:43 · 643 阅读 · 0 评论 -
反转链表(递归与双指针)
数据结构-链表-反转链表题目描述反转一个单链表。示例输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL分析递归解决核心操作此部分为反转链表的基本操作,故递处理基本操作不太适用,此基本操作由递归进入得来,基本操作本身不含递归函数 p->next->next = p;...原创 2019-11-27 00:32:54 · 777 阅读 · 0 评论 -
判断相交链表(双指针与哈希表)
数据结构-链表-相交链表题目描述示例输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为...原创 2019-11-26 01:30:51 · 727 阅读 · 0 评论 -
判断环形链表
数据结构-链表-环形链表题目示意给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例1输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2输入:head = [1], pos =...原创 2019-11-26 00:07:40 · 617 阅读 · 0 评论 -
删除排序链表(或数组)中的重复元素
数据结构-链表-删除排序链表中的重复元素题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2分析暴力法解决,依次从链表中取元素,再拿该元素对链表顺序匹配,时间复杂度为O(n^2)源代码(经VS2015、De...原创 2019-11-25 21:42:53 · 976 阅读 · 0 评论 -
合并两个有序链表(递归)
数据结构-链表-合并两个有序链表(递归详细分析实现)题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/*数据结构*/ListNode { int val; ListNode *next; }示例输入:1->2->4, 1->3->4输出:1->1->2->3-&...原创 2019-11-25 20:26:04 · 1772 阅读 · 0 评论