#binary

leetcode 968. Binary Tree Cameras

968.BinaryTreeCameras思路:如果子节点只能覆盖到父节点、当前节点,但是父节点可以覆盖到他的父节点、子节点、当前节点,所以从叶子节点往上考虑0代表子节点没有被覆盖1代表子节点被覆盖,但是子节点没有camera2代表子节点被覆盖,子节点有camerahttps://www.cnblogs.com/eth...

leetcode 257. Binary Tree Paths

 自己写的一个代码,注意这里判断是否是根节点前,应该把当前节点的value值push_back到res中/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx)...

leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree

108.ConvertSortedArraytoBinarySearchTree这个题使用二分查找,主要要注意边界条件。如果left>right,就返回NULL。每次更新的时候是mid-1,mid+1。自己推一下基本就可以验证了。classSolution{public:TreeNode*sortedArrayT...

leetcode 704. Binary Search 、35. Search Insert Position 、278. First Bad Version

704.BinarySearch 1.使用start+1<end,这样保证最后剩两个数2.mid=start+(end-start)/2,这样避免接近max-int导致的溢出3.start、end直接等于mid4.最后比较两个位置classSolution{public:intsearch(vector...

leetcode701. Insert into a Binary Search Tree

 https://www.cnblogs.com/grandyang/p/9914546.html 类似于二分查找的方法,用迭代的方法去做注意:无论是进入左子树还是右子树,左右子树都变成了新的数,所以需要重新根据root->left=....来重新生成classSolution{public:...

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...

leetcode 110. Balanced Binary Tree

 classSolution{public:boolisBalanced(TreeNode*root){intdepth=0;returnBalanced(root,depth);}boolBalanced(TreeNode*root,int&depth){if(root==NULL){depth=0...

leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree

104:classSolution{public:intmaxDepth(TreeNode*root){if(root==NULL)return0;intleft=maxDepth(root->left);intright=maxDepth(root->right);return(left>right...

leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)

124.BinaryTreeMaximumPathSumhttps://www.cnblogs.com/grandyang/p/4280120.html如果你要计算加上当前节点的最大path和,这个节点的左右子树必定是纯左右树(即没有拐点),用另一个参数保留整个二叉树的最大path和,然后计算每一个以当前节点为拐点的路...

94. Binary Tree Inorder Traversal

  https://www.cnblogs.com/grandyang/p/4297300.html用堆来辅助,先存储所有的左节点,再根据左节点找右节点classSolution{public:vector<int>inorderTraversal(TreeNode*root){vect...
代码星球 ·2020-10-13

leetcode 235. Lowest Common Ancestor of a Binary Search Tree 236. Lowest Common Ancestor of a Binary Tree

https://www.cnblogs.com/grandyang/p/4641968.htmlhttp://www.cnblogs.com/grandyang/p/4640572.html利用二叉搜索树的性质:左子树所有节点小于根节点,右子树所有节点大于根节点如果两个节点的最大值小于根节点,那最低公共祖先一定在左子树...

98. Validate Binary Search Tree

错误解法classSolution{public:boolisValidBST(TreeNode*root){if(root==NULL)returntrue;boolleft=isValidBST(root->left);boolright=isValidBST(root->right);if(left=...
代码星球 ·2020-10-13

leetcode 96. Unique Binary Search Trees 、95. Unique Binary Search Trees II 、241. Different Ways to Add Parentheses

96.UniqueBinarySearchTreeshttps://www.cnblogs.com/grandyang/p/4299608.html3由dp[1]*dp[1]、dp[0]*dp[2]、dp[2]*dp[0]相加而成从2开始classSolution{public:intnumTrees(intn){ve...

617. Merge Two Binary Trees

 https://www.cnblogs.com/grandyang/p/7058935.htmlclassSolution{public:TreeNode*mergeTrees(TreeNode*t1,TreeNode*t2){if(!t1)returnt2;if(!t2)returnt1;TreeNode...
代码星球 ·2020-10-13

114. Flatten Binary Tree to Linked List

http://www.cnblogs.com/grandyang/p/4293853.html 用递归,先把左子树、右子树处理好,然后再将当前根节点和左、右子树进行处理。处理的方式是将左子树换到右子树,且左子树为空,之前的右子树在整个新生成的右子树的最右节点classSolution{public:voidf...
代码星球 ·2020-10-13
首页上一页...23456...下一页尾页