4 Dannii_

尚未进行身份认证

我要认证

一名苦逼加班的 做游戏的 后台开发的 程序猿 =_=

等级
TA的排名 1w+

36-Leetcode 二叉搜索树与双向链表

文章目录思路法一:递归法二:借助栈题目二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。要求不能创建任何新的节点,只能调整树中节点指针的指向。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。思路我们知道二叉搜索树的特点就是,左孩子节点的值 < 根节点的值 < 右孩子节点的值所以按照 左根右 的顺序进行遍历,即可实现从

2020-07-14 20:02:39

33-LeetCode 二叉搜索树的后序遍历序列

文章目录题目题目二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树:5/ \2 6/ \1 3示例 1:输入: [1,6,3,2,5]输出: false思路:后序遍历: 左             &n

2020-07-14 15:51:31

26-LeetCode

文章目录题目法一:递归题目树的子结构。输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ \4 5/ \1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。法一:递归先在A树中找到和B树根节点相同的节点找到相同的根节点后,从根节点开始判断A是否包含B树当B为空,说明B已匹配完成,返回true当A为空

2020-07-14 14:58:35

27-LeetCode 二叉树的镜像

文章目录题目法一:迭代题目二叉树的镜像。请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:     4    / \   2 7  / \ / \1 3 6 9镜像输出:    4   /   \  7   2  / \   / \9

2020-07-14 11:15:22

106-LeetCode 从中序与后序遍历序列构造二叉树

文章目录题目法一:递归题目从中序与后序遍历序列构造二叉树。根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:3/ \9 20    / \  15 7法一:递归思路:中序遍历: 左 根 右后序遍历: 左 右 跟根据 后序序列 得到

2020-07-10 10:42:48

105-LeetCode 根据前序+ 中序序列构造二叉树

文章目录题目法一:递归题目从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ \9 20/ 15 7 法一:递归思路根据前序遍历可以知道根节点,根据根节点可以在中序序列中得到左子树 和 右子树 的中序序列我们可以得到如下信息:先序序列------根节

2020-07-09 19:29:03

32-LeetCode 从上到下打印二叉树

文章目录题目题目从上到下打印二叉树:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回:[3,9,20,15,7]思路:从上-往下打印二叉树—相当于层序遍历从上往下,从左往右。我们知道都是按顺序的,顺序结构,可以借助队列来帮助实现先把根节点放入队列队列不为空,取出队列中的一个节点,左孩子节点(不为空)入队,右孩子节点(不为空)入队一次重复第

2020-07-08 19:41:38

145-LeetCode 二叉树的后序遍历

[toc]题目二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [3,2,1]代码如下:#include <stdio.h>#include <stdlib.h>#include <iostream>#include <stack>#include <vector>using namespace std;struct TreeNode{

2020-07-08 17:50:12

94-LeetCode 二叉树的中序遍历

文章目录题目法一:借助栈法二:递归版本法三:莫里斯遍历 ---- 线索二叉树题目二叉树的中序遍历:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,3,2]法一:借助栈中序遍历: 左 根 右我们可以借助栈来完成。我们知道左 跟 右,那就是要把左子树全部处理完了,即一直往左下一直走到头,然后在一层一层向上出来 - - - 再去处理根节点 - - - 再去处理右节点具体思路:根节点入栈 - - - 根节点的所有左节点依次

2020-07-07 19:49:10

144-LeetCode 二叉树的先序遍历

文章目录题目一:借助栈实现借助栈实现---优化版本二:递归实现题目二叉树的前序遍历:给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3]1\2/3输出: [1,2,3]一:借助栈实现我们知道,先序遍历是按照 根左右 的顺序进行遍历的。即 根 左子树 右子树我们知道栈的特点是后进先出。可以借助栈来实现:先把根节点入栈栈不为空。弹出栈顶元素 A栈顶元素 A 的右节点入栈(若不为空)栈顶元素 A 的左节点入栈(若不为空)重复上述操作直

2020-07-06 20:13:12

堆排序

预处理器是在编译之前执行的一段程序,可以部分地改变我们所写的程序。 预处理器可以确保头文件多次包含但仍能安全工作。头文件保护符 #define:指令把一个名字设定为预处理器变量。 #ifdef:当且仅当变量已定义时为真 #ifndef:当且仅当变量未定义时为真 一旦检查结果为真,则执行后续操作直至遇到#endif指令为止

2020-06-20 17:02:55

二叉堆的构建、插入、删除等操作

共享内存就是两个或者多个进程共享的一块区域。只要一个进程改变了这块地址中的内容的时候,其他进程便会察觉到改变的内容。(1)创建共享内存 int shmget(key_t key, int size, int shmflg) (2)将共享内存映射到自己的内存空间 void* shmat(int shmid, const void* shmaddr, int shmflg) shmi...

2020-06-20 15:51:59

选择排序

选择排序是一种灵巧的算法,但其速度不是很快。具体规则如下:1:从未排序元素中找到最小(大)元素,存放到排序序列的起始位置。(我们以最小值举例)2:再从剩余的未排序元素中继续寻找最小元素,然后放到已排序序列的末尾(通过交换元素值实现,如果最小元素比第一个未排序元素小,那就交换他们的值)3:重复第二步,直到所有元素排序完成时间复杂度:O(n^2)要遍历n次,即针对每个元素,对他们进行排...

2020-04-24 11:30:10

C 和 C++ 关于 const 的比较

C 语言中 const 修饰符:const 修饰的变量不是真正意义上的常量,而是一个常变量无法直接修改,但是可以间接修改变量的值。会分配内存空间,因此可以通过指向其地址空间的指针去修改其内容。const int b = 10; int * p = (int *)&b;*p = 30;printf("%x\n" , &b); // 313b1df4prin...

2020-04-18 17:58:36

LeetCode-155 最小栈

文章目录题目思路辅助栈和数据栈同步操作辅助栈只存储最小值题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:MinStack minStack = new MinStack();...

2020-04-07 20:30:52

垃圾回收 GC

文章目录垃圾回收(Garbage Collection,缩写为GC)收集器实现引用计数收集器跟踪收集器。回收算法1:标记-清除2:标记-压缩3:复制4:增量回收器5:分代垃圾回收(Garbage Collection,缩写为GC)自动的存储器管理机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间。收集器实现引用计数收集器...

2020-04-07 16:49:23

redis 配置文件

redis.conf配置重要字段详解1、redis的日志级别: redis的日志级别分为debug、verbose、notice、waining。在redis.conf中通过loglevel来配置redis的日志等级。只记录level级别大于配置文件中配置的等级。#define REDIS_DEBUG 0#define REDIS_VERBOSE 1#define REDIS_NOT...

2019-11-23 14:31:58

游戏设计 MMORPG类九宫格视野

文章目录地图分块坐标点定位玩家所在地图块视野块玩家视野玩家九宫格中的视野数据如何取舍在游戏中地图是以 X 轴, Z 轴为水平面的(游戏中都以cm为单位)。假设地图大小是256m * 256m,下面都是按照这个大小进行讨论。地图上每个位置都会有对应的actor对象(玩家或者npc等),如何获取当前地图的所有玩家?当玩家走到某个位置如何更新玩家的视野信息,获取当前玩家周围的其他actor对...

2019-10-28 19:39:36

struct 结构体 所占字节数的计算

定义结构体类型,只能说明该类型的组成情况,并没有分配内存空间。只有当定义属于结构体类型的变量时,系统才会分配空间给该变量。

2019-10-10 19:29:39

c++ 指针常量、常量指针、函数指针等详解

指针(1)指针本身就是个对象,允许对指针赋值和拷贝。生命周期内它可以先后指向几个不同的对象。(2)指针无需在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。(3)指针存放某个对象的地址。可以使用取地址符 & 来获取地址(4)如果指针指向了一个对象,可以使用解引用符 * 来访问该对象(5)void* 可以存放任意对象的地址。但是我...

2019-09-19 14:56:21

查看更多

勋章 我的勋章
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。