、数据结构与算法 1.二叉树前序、中序、后续遍历方式(递归以及非递归) 2.二叉树的深度以及广度遍历方式 3.二叉树遍历情况中所有连续节点的最大的值 4.求数组所有可能的子数组 5.给定一个数,求一个有序数组的两个数的和满足这个数(可以拓展一下变成两个无序的数组) 6.求一个数组的第二大值 7.大文 ...
分类:
其他好文 时间:
2021-01-22 12:22:20
阅读次数:
0
树的构造 class TreeNode: def __init__(self,val,left=None,right=None): self.val=val self.left=left self.right=right t7 = TreeNode(7) t6 = TreeNode(6) t5 = ...
分类:
其他好文 时间:
2021-01-14 11:27:23
阅读次数:
0
package JianZhioffer; //剑指 Offer 36. 二叉搜索树与双向链表 /** * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 */ //中序遍历,二叉搜索树,中序遍历从小到大 import java ...
分类:
其他好文 时间:
2021-01-14 11:05:13
阅读次数:
0
#include<iostream> #include<vector> using namespace std; vector<char>post,in; vector<char>level(100000,-1); in N; void ergodic(int root,int start,int ...
分类:
编程语言 时间:
2021-01-05 11:40:19
阅读次数:
0
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal 根据一棵树的中序遍历与后序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 ...
分类:
其他好文 时间:
2021-01-05 11:32:09
阅读次数:
0
前序 class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; if (root == nullptr) { return res; } stack<TreeNode*> stk ...
分类:
其他好文 时间:
2021-01-01 12:36:16
阅读次数:
0
题目链接:重建二叉树 思路:根据前序和中序的排列规律,在中序遍历时,根节点的左边是左子树结点,右边是右子树结点,而前序遍历中首先出现根结点,紧接着根结点的是左子树结点,然后是右子树结点。所以,我们只需要确定在前序和中序中根结点的位置,通过根结点可以知道左子树和右子树结点的位置,该问题便转化为根据左右 ...
分类:
其他好文 时间:
2020-12-31 11:57:08
阅读次数:
0
☆☆☆思路:剑指18.二叉树的镜像 方法1:递归。二叉树此类递归问题,要以根节点为目标点进行分析。 思路1:首先分别翻转根节点的左右子树,然后交换左右子树的位置即可。 思路2:也可以先交换左右子树的位置,然后再分别翻转根节点的左右子树。 方法2:BFS层序遍历 层序遍历树的所有节点,然后交换其左右节 ...
分类:
其他好文 时间:
2020-12-28 11:24:22
阅读次数:
0
/二叉树的遍历框架/ void traverse(TreeNode root) { //前序遍历:先访问根节点,再前序访问左子树,再访问右子树 traverse(root->left); //中序遍历:先中序访问左子树,再访问根节点,再访问右子树 traverse(root->right); //后 ...
分类:
其他好文 时间:
2020-12-17 13:11:47
阅读次数:
9
深度广度遍历// 根据前序和中序重建二叉树/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function reConstructBinaryTree(pre, vin){ var res ...
分类:
其他好文 时间:
2020-12-09 12:27:49
阅读次数:
10