
二叉树
qq_37357873
这个作者很懒,什么都没留下…
展开
-
二叉树最近公共祖先LCA---解题过程问题分析
【比较容易理解的思路描述】 相当于在root为根的树中找p,q,找到了就传给它的父节点(如果找到叶子结点还没找到,那就是不存在p/q,就把null往父节点上传),一层一层向上传,可以理解为: //比如上面的例子,root[10]=4 //传给4的父节点,root[4] 结果有以下几种: (1)p,q传到某个节点root的左右子节点,那么root就是LCA (2)q传到某一层父节点的时候,这个父节点是p,那么p就是LCA (3)p传到某一层父节点的时候,这个父节点是q,那么q就是LCA (4)如果p||..原创 2020-11-14 22:33:41 · 177 阅读 · 0 评论 -
二叉树/二叉搜索树(BST)解题思路框架
文章目录二叉树解题框架思路如何确定用什么遍历二叉树各种遍历的框架层次遍历前序中序后续如何确定前序后续中序中的操作序列化和反序列化前序后续(特殊)层次序列化反序列化重复子树的例题 二叉树解题框架思路 首先要确定,这道题用什么遍历?一定能找到一种遍历模板解决这道题,所以一定要熟悉遍历模板 先序/中序/后续=>用递归 层次遍历=>while循环+队列 如何确定用什么遍历 思考一个节点需要做什么。 如果是二叉搜索树,一般考虑中序遍历 以为二叉搜索树中序遍历可以得到一个升序的数组 如果想得到降序的数组就先原创 2020-11-16 18:23:13 · 436 阅读 · 0 评论 -
BST二叉搜索树常见框架
中序遍历得有序数组 判断是否二叉搜索树 不能简单的用左子节点和右子节点比较 而要用左子树的最大值和右子树的最小值与根节点比较 现在限定根节点的取值范围 min.val<=root.val<=max.val 通过根节点,根节点能取到的最小值,根节点能取到的最大值进行判断 bool isvalidBST(TreeNode *root,TreeNode *min,TreeNode *max) { } 那么当根节点的值超过限制,就说明不是BST //根节点小于最小值了 if(min!=NULL&am原创 2020-11-16 22:42:28 · 118 阅读 · 0 评论