leetcode题解——对称二叉树 题目如下 给定一个二叉树,检查它是否是镜像对称的。 解题思路 考察递归 对于一棵树,可以从外围到内围一层层判断是否镜像 外围对应的是左边结点的左孩子和右边结点的右孩子 内围对应的是左边节点的右孩子和右边结点的左孩子 /** * Definition for a b ...
分类:
其他好文 时间:
2021-03-17 14:29:11
阅读次数:
0
#include<stdio.h> #include<stdlib.h> typedef char ElemType; //结点定义 typedef struct node{ ElemType data; struct node* lchild,*rchild; }BiTNode,*BiTree; ...
分类:
其他好文 时间:
2021-03-17 14:03:43
阅读次数:
0
红黑树 相关概念 1 rb_tree 是一种高度平衡的搜索二叉树,其元素排列的规则有利于 search 和 insert,并同时保持适度的平衡。 2 rb_tree 提供遍历操作以及 iterator。元素放入后有一定的排列规则,按正常规则(++ iter)迭代器遍历时为输出为排序状态(sorted ...
分类:
其他好文 时间:
2021-03-16 13:19:30
阅读次数:
0
#111. 二叉树的最小深度 https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/ 关键在于知道f(root)=min(f(left),f(right))+1这个表达式 class Solution { public: int ...
分类:
其他好文 时间:
2021-03-16 12:04:09
阅读次数:
0
void flatten(TreeNode root) { // base case,即最小 if (root == null) return; flatten(root.left); flatten(root.right); /**** 后序遍历 ****/ // 1、保存原来的左右节点,避免变换 ...
分类:
其他好文 时间:
2021-03-16 11:50:33
阅读次数:
0
ref #include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *lchild, *rchild; }bitree_t; bitree_t *createNode(int data) { b ...
分类:
编程语言 时间:
2021-03-15 11:35:22
阅读次数:
0
二叉树的前序、中序、后序遍历 每个节点会被经过3次,前序、中序、后序的区别在于:在哪一次经过该节点时对其进行访问。 2. 递归实现 traverseRecursive(BiTrNode<T>* node): basecase: if(node == nullptr) return; general: ...
分类:
编程语言 时间:
2021-03-15 11:08:04
阅读次数:
0
236. 二叉树的最近公共祖先 题目描述 相似题目:https://www.cnblogs.com/GarrettWale/p/14406641.html 题解分析 此题是利用二叉树的后序遍历来求解最近公共祖先。 递归的出口是遍历到叶子结点或者当前结点(root)等于待搜索的结点(p或者q),此时需 ...
分类:
其他好文 时间:
2021-03-15 10:51:02
阅读次数:
0
1.二叉树的前序遍历:输出当前结点的值之后再去判断是否含有子节点如果有就继续调用递归;2.二叉树的中序遍历:先判断当前节点的一个子节点是否存在并递归之后再去输出当前节点的值,再继续判断另一边的节点;3.二叉树的后序遍历:先判断左右两边的子节点是否存在,如果存在就去递归,直到最后的递归完成后再输出当前 ...
分类:
其他好文 时间:
2021-03-15 10:48:20
阅读次数:
0
问题 序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 示例 输入: "9,3,4,#,#,1,#,#,2,#,6,#,#" 输出: true 解答 class Solution { public: ...
分类:
其他好文 时间:
2021-03-12 14:19:20
阅读次数:
0