数据结构
文章平均质量分 59
数据结构知识点和习题讲解
wj3034547573
这个作者很懒,什么都没留下…
展开
-
剑指offer19.正则表达式匹配
(注意,p的第i个字符的下标是i-1,在之后从p中利用下标取字符的时候不要搞混了)原创 2024-05-23 15:44:06 · 1700 阅读 · 0 评论 -
剑指offer28.对称的二叉树
这样顺序中序遍历的结果是[3, 2, 4, 1, 4, 2, 3],逆序遍历的结果是[3, 2, 4, 1, 4, 2, 3],一对比,结果一样,于是判断对称。思路:对于每个节点,判断是否对称,就是比较左子树的右子树和右子树的左子树是否对称、左子树的左子树和右子树的右子树是否对称。(3)左子树和右子树都不是空的,比较数值,如果数值相等,继续递归,如果数值不相等,说明不对称,返回false。有一种方法是把二叉树顺序遍历一遍,再逆序遍历一遍,有什么方法能体现遍历是父节点、左子树、右子树的顺序呢?原创 2024-05-21 19:32:13 · 620 阅读 · 0 评论 -
剑指offer27.二叉树的镜像
时间复杂度分析:每个节点遍历一遍,时间复杂度为O(N);空间复杂度:最差树退化为链表,递归栈的深度为N,故最坏的空间复杂度为O(N)。输入:root = [5,7,9,8,3,2,4] 输出:[5,9,7,4,2,3,8]右子树=临时变量(临时变量保存的是交换过的左子树)对于结点i,临时变量保存一下交换过的左子树;终止条件:该节点i为空节点,没有左右子树。,请左右翻转这棵二叉树,并返回其根节点。题目内容:给定一棵二叉树的根节点。题解:可以递归的交换节点的两个子树。左子树=交换过的右子树;原创 2024-05-21 18:17:22 · 337 阅读 · 0 评论 -
剑指offer07.重建二叉树
将中序遍历中i后面的元素作为新的右子树的中序遍历数组,前序遍历[i+1, end]的元素作为 右子树的前序遍历,递归地建立右子树;将中序遍历中i前面的元素作为新的左子树的中序遍历数组,前序遍历从[1, i]的元素作为左子树的前序遍历数组,递归地建立左子树;前序遍历的第一个元素是根节点(node->val = 前序遍历的第一个元素),在终须遍历中找到其位置i;【2】在中序遍历中,根节点前面的元素都在左子树,根节点后面的元素都在右子树。【1】一个二叉树的前序遍历数组的第一个元素一定是二叉树的根节点;原创 2024-05-19 20:36:34 · 774 阅读 · 0 评论