![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
二叉树总结
该专栏主要是对数做一个总结,关系到树的递归非递归遍历,子树、路径、问题。
努力做一个code杠精
我就是个小垃圾
展开
-
【二叉树】04 给出前序遍历和中序遍历复原二叉树
///给出前序遍历和中序遍历复原二叉树 TreeNode* rebuild(int* pdata, int* idata, int n) { //假设给出的前序中序都是数组,pdata 前序;idata中序;n是长度 if (n <= 0) { return NULL; } TreeNode* root = new TreeNode(*pdata); int* iter; f...原创 2020-03-11 23:06:34 · 132 阅读 · 0 评论 -
【二叉树】04 二叉树的路径问题(路径上的值加起来等于某一特定值的所有路径的集合)
树的路径问题 /* 找出一条满足特定条件的路径。对于这类问题,通常都是传入一个vector记录当前走过的路径(为尽可能模板化,统一记为path), 还需要传入另一个vector 引用记录所有符合条件的path(为尽可能模板化,统一记为result)。 注意,result可以用引用或指针行驶,相当于一个全局变量,或者就开辟一个独立于函数的成员变量。 由于path通常是vector,那么result就...原创 2020-03-10 23:51:09 · 228 阅读 · 0 评论 -
【二叉树】03 判断是否是平衡二叉树+求树的深度
判断是否是平衡二叉树 判断是否是平衡二叉树,就是判断二叉树左右子树深度之差不大于1. int level(TreeNode* root) { if (root == NULL) return 0; return max(level(root->left), level(root->right)) + 1; } bool isBalanced(TreeNode* root) { ...原创 2020-03-10 23:47:45 · 93 阅读 · 0 评论 -
【二叉树】02 树的各种遍历(递归与非递归的先中后序遍历,层次遍历)
二叉树的前中后遍历,递归与非递归 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode (int x):val(x),left(NULL),right(NULL){} }; 递归 先序遍历: void PreOrderTraversal(TreeNode* root) { if (!root) { ...原创 2020-03-10 23:44:49 · 185 阅读 · 0 评论