![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
桃花仙人~
这个作者很懒,什么都没留下…
展开
-
玩转二叉树-------已知后序(先序)+中序----->输出 层序遍历,先序遍历,建树
如果想要完整的建立一颗二叉树,必须知道树的中序+先序或者中序+后序如果想要详细观察这棵树可以选择用new的方式重建二叉树如果只是刷题,用数组模拟二叉树,根节点为0,左子树的的节点为2*i+1 右子树的节点为2*i+2;例如知道了后序遍历+中序首先在后序中找到根节点 然后遍历中序序列,找到根,此时就可以知道左子树的长度,右子树的长度如果仅仅是为了输出先序遍历,此时输出根节点,然后递归遍历左子树,右子树如果想要重建二叉树,此时new一下跟节点,然后递归左子树,右子树,记得此时函数返.原创 2020-11-30 15:33:27 · 312 阅读 · 0 评论 -
记录二叉树路径&最近的公共祖先
记录二叉树的路径跟搜索很像(其实就是搜索)同时可以用到树的前序遍历记录路径题目进入树--搜索该节点(累加)---递归左子树---搜索该节点(累加)---递归右子树---if(!node)return;if(node->left==NULL&&node->right->==NULL&&sum==targe)res.push_back();/** * Definition for a binary tree node. * struct T原创 2020-07-12 14:52:03 · 169 阅读 · 0 评论 -
用归并排序,BST求逆序数
归并排序得到一个数组,先分开知道长度小于2,然后在合,一点一点排序class Solution{ public: void merge(vector<int> &a,vector<int> &b,vector<int> &vec) { int n=a.size(),m=b.size(),i=0,j=0; while(i<n&&j<m)//注意这里是与的关系 { if(a原创 2020-07-12 14:35:30 · 144 阅读 · 0 评论