数据结构与算法
weixin_44952131
这个作者很懒,什么都没留下…
展开
-
leetcode 154 寻找旋转排序数组中的最小值 II
这里写目录标题一、题目:二、题解:第一种版本:数组中没有重复数第二种版本:数组中有重复数三、所有代码:一、题目:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n原创 2021-07-20 22:02:38 · 99 阅读 · 0 评论 -
左神算法--快速寻找二叉树的后继节点
这里有两种情况第一种,该节点node有右子节点,那这时他的后继节点就是他右子节点的最左节点node0第二种,该节点node没有右子节点,那这时他的后继节点就是他的上面的一个节点node0,但node必须是node0节点的左子树点下的节点。如果没有这个节点node0,那么节点node就是这棵树的最右节点,这个节点的后继节点就是NULL。代码#include<iostream>#include<vector>using namespace std;struct BTree.原创 2021-06-14 22:31:30 · 85 阅读 · 1 评论 -
左神算法--寻找二叉树的最低公共祖先
题目:给定二叉树root的两个节点node1和node2,找到他们的最低公共祖先节点方式1:将二叉树每个节点的父节点找出来并使用hashmap保存,将node1节点到root节点的路线保存到一个hsahset中node2利用保存父节点的hashmap向上遍历,如果遇到了hashset中有的节点,那就是公共祖先节点//建立父节点映射hshmapvoid process(BTree * node,unordered_map<BTree *,BTree *> & fathers)原创 2021-06-14 21:37:23 · 218 阅读 · 0 评论 -
验证搜索二叉树
需要注意的是这个题目并没有限定节点值的范围,而且没有限定每一个根节点都有左右子节点最开始我想到了使用递归,每一次返回该节点是否是搜索二叉树、该节点以下的最大最小值,因为是使用左右子节点的情况进行分类,因此代码比较复杂代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(.原创 2021-06-13 16:11:38 · 65 阅读 · 0 评论 -
左神算法--二叉树最大深度
目录一、二叉树最大宽度一、二叉树最大宽度思路1:利用两个额外储存空间,一个是队列,一个是map队列可以将二叉树按照宽度遍历,map用来记录每一个节点属于第几层,用于统计思路2:只是使用一个queue,不使用map,换成使用两个节点来记录当前层最后一个节点和下一层最后一个节点。下一层最后一个节点:可以由当前层最后压入的子节点来确定当前层最后一个结点:可以当前层遍历完后,下一层更新为当前层时,将下一层的最后一个节点复制给当前层最后一个节点。因此,只要将第一个头节点作为第一个压入节点,同时因为第一层原创 2021-05-16 13:02:30 · 69 阅读 · 0 评论 -
左神算法--二叉树遍历
二叉树遍历目录二叉树遍历前序遍历:头-左-右中序遍历:左-头-右后序遍历代码测试:前序遍历:头-左-右对于二叉树的每一个子树都是,先打应头,再打印左孩子,再打印右孩子思路:现将头放入一个栈中,开始遍历,遍历内容:《每次从栈中弹出栈顶元素,打印栈顶元素,判断是否有右孩子,将栈顶元素右孩子压入栈中,判断是否有左孩子,再将栈顶元素的左孩子压进栈中》struct Binode{ int data; Binode * lchild; Binode * rchild;};void原创 2021-05-13 00:05:39 · 109 阅读 · 0 评论 -
左神算法--链表找交点
链表找交点目录链表找交点情况一:两个链表都无环情况二:一个有环一个无环情况三:两个链表都有环首先分有环还是无环情况一:两个链表都无环这里又可以分为两种情况,一种是无交点,一种是有交点,这里就看是否两个链表的终点相等,相等就有交点,否则无交点1、两条单链表没有交点,直接返回NULL就可以2、两个链表结尾相等这种两个链表分别遍历找到节点数目差值,长的链表先走差值的步数,再两个链表同时走,当两个链表相等的时候就是节点啦情况二:一个有环一个无环这种情况是不可能出现交点的,大家可以自己画画看,原创 2021-05-11 23:13:09 · 231 阅读 · 0 评论