还原二叉树 给前序、中序 function preMid(pre,mid){ if(pre.length == 0 || mid.length == 0){ return null } var root = pre[0] //前序第一个是根节点 //获取根节点在中序中的索引值 var rootMid ...
分类:
其他好文 时间:
2020-07-16 21:42:16
阅读次数:
74
【题目】 给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。 注意: 如果给定的节点是中序遍历序列的最后一个,则返回空节点; 二叉树一定不为空,且给定的节点一定不是空节点; 样例 假定二叉树是:[2, 1, 3, null, null, null, null], 给出的是值等于2的节点。 ...
分类:
其他好文 时间:
2020-07-15 22:53:47
阅读次数:
59
一、MFC中序列化的五个步骤: 继承自CObject类 重写Serialize()函数 在类的申明中使用DECLARE_SERIAL 宏 定义一个无参数的构造函数(重建对象的时候要用) 在cpp文件中添加IMPLEMENT_SERIAL宏 如果类没重载<<和>>,可自行调用 ar.Write(&m_ ...
分类:
编程语言 时间:
2020-07-14 21:56:06
阅读次数:
88
前言 昨天和今天复习了二叉树的前序遍历、中序遍历和后序遍历,找到了一种统一的非递归的方法(即使用一个思路非递归实现二叉树的前序、中序和后序遍历)。 思路 思路本质上还是递归,只不过不通过递归函数显示地递归,而是通过栈模拟递归的过程。 具体思路:https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 15:41:18
阅读次数:
65
题目链接 https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 题解一:递归 // Problem: LeetCode 94 // URL: https://leetcode-cn.com/problems/binary-tr ...
分类:
其他好文 时间:
2020-07-13 15:36:49
阅读次数:
58
501. 二叉搜索树中的众数 描述: 思路:中序遍历。 503. 下一个更大元素 II 描述: 思路:单调栈。 506. 相对名次 描述: 思路:先拍戏。再替换。 508. 出现次数最多的子树元素和 描述: 思路:后序遍历。否则叶子节点就遍历了很多次。通过hash存《和,次数》 513. 找树左下角 ...
分类:
其他好文 时间:
2020-07-13 13:31:19
阅读次数:
83
Description link 给定一棵二叉树,每个叶子上面有权值,你可以任意交换某个点的两颗子树 使得最后形成的树的中序遍历出来的子树的逆序对最少 \(n \le 2\times10^5\) Solution 如果你真的想做这个题,请耐心手玩样例并看懂这个题神仙一样的输入方式…… 考虑逆序对怎么 ...
分类:
其他好文 时间:
2020-07-13 09:17:09
阅读次数:
52
前序中序序列建立二叉树: //in[]和pre[]数组存放二叉树的中序和前序遍历序列 node* build(int preL,int preR,int inL,int inR){ if(preL>preR) return NULL; node* root=(node*)malloc(sizeof( ...
分类:
其他好文 时间:
2020-07-12 16:46:02
阅读次数:
85
前序遍历 先输出当前结点的数据,再依次遍历输出左结点和右结点 根结点 > 左子树 > 右子树 中序遍历 先遍历输出左结点,再输出当前结点的数据,再遍历输出右结点 左子树 > 根结点 > 右子树 DBEAFC 后序遍历 先遍历输出左结点,再遍历输出右结点,最后输出当前结点的数据 左子树 > 右子树 > ...
分类:
其他好文 时间:
2020-07-11 23:04:48
阅读次数:
66
前序遍历的非递归实现 中序遍历的非递归实现 1 void InOrder2(BTNode *root) { 2 BTNode *p = root; 3 stack<BTNode *> S; 4 while (p != NULL || !S.empty()) { 5 if (p) { // 找到树中最 ...
分类:
编程语言 时间:
2020-07-11 19:21:14
阅读次数:
59