#二叉

二叉树遍历算法

二叉树是一种非线性的数据结构,在对它进行操作时,总是需要逐一对每个数据元素实施操作,这样就存在一个操作顺序问题,由此提出了二叉树的遍历操作。所谓遍历二叉树就是按某种顺序访问二叉树中的每个结点一次且仅一次的过程。这里的访问可以是输出、比较、更新、查看元素内容等等各种操作。在这里写了个二叉树遍历算法、根据三种不同的顺序得到...
代码星球 代码星球·2020-10-21

给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径: 路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。

给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径:路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。  方案1:如果结点中包含指向父亲结点的指针,那么,只需要去遍历这棵二叉树,然后从每个结点开始,不断地去累加上它父亲结点的值直到父亲结点为空(这个具有唯一性,因为每...

leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes

完全二叉树的定义:若设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。解题思路:将树按照层进行遍历,如果出现null后还出现非null则能证明这个不是完全二叉树https://leetcode.com/problems/check-com...

二叉树

题目:1.binarytreepreordertraversal2.maximumdepthofbinarytree3.balancedbinary tree4.binary tree maximumpathsum,这个题也可以简化,从根节点出发的最大路径和 5.lowestco...
代码星球 代码星球·2020-10-13

二叉树深度

  classSolution{public:intTreeDepth(TreeNode*pRoot){if(pRoot==NULL)return0;intdepth,left,right;left=TreeDepth(pRoot->left);right=TreeDepth(pRoot-&g...
代码星球 代码星球·2020-10-13

剑指offer24 二叉搜索树的后序遍历序列

自己写的更简洁的代码classSolution{public:boolVerifySquenceOfBST(vector<int>sequence){intlength=sequence.size();if(length<=0)returnfalse;returnVerifyCore(sequence...

剑指offer58 二叉树的下一个结点

自己写的classSolution{public:TreeLinkNode*GetNext(TreeLinkNode*pNode){if(pNode==NULL)returnNULL;if(pNode->right!=NULL){TreeLinkNode*origin=pNode->right;while(...

leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal,剑指offer 6 重建二叉树

不用迭代器的代码classSolution{public:TreeNode*reConstructBinaryTree(vector<int>pre,vector<int>vin){TreeNode*root=NULL;intlength_pre=pre.size();intlength_vin...

剑指offer25 二叉树中和为某一直的路径

 先序遍历classSolution{public:vector<vector<int>>FindPath(TreeNode*root,intexpectNumber){vector<vector<int>>result;if(root==NULL)return...

剑指offer39 平衡二叉树

剑指上用了指针传递,这里用的引用传递classSolution{public:boolIsBalanced_Solution(TreeNode*pRoot){intdepth=0;returnIsBalanced(pRoot,depth);}boolIsBalanced(TreeNode*pRoot,int&d...
代码星球 代码星球·2020-10-12

剑指offer23 从上往下打印二叉树

没有把队列的头部弹出,出现内存错误: ...

二叉搜索树

二叉查找树(BinarySearchTree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。 给定值的比较次数等于给定值...
代码星球 代码星球·2020-09-12

LeetCode-101.对称二叉树

boolbfs(structTreeNode*LNode,structTreeNode*RNode){boolret;if(LNode==NULL&&RNode==0)returntrue;if(LNode!=0&&RNode!=0){if(LNode->val!=RNode-&g...
代码星球 代码星球·2020-09-10

图解leetcode —— 124. 二叉树中的最大路径和

前言:每道题附带动态示意图,提供java、python两种语言答案,力求提供leetcode最优解。描述:给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例1:输入:[1,2,3]1/23输出:6示例 2:输入...

6.1 集合和映射--集合Set->底层基于二叉搜索树实现

前言:在第5章的系列学习中,已经实现了关于二叉搜索树的相关操作,详情查看第5章即可。在本节中着重学习使用底层是我们已经封装好的二叉搜索树相关操作来实现一个基本的集合(set)这种数据结构。集合set的特性:集合Set存储的元素是无序的、不可重复的。为了能达到这种特性就需要寻找可以作为支撑的底层数据结构。这里选用之前自己...
首页上一页...34567...下一页尾页