lc.112 路径总和
![[Pasted image 20241128001603.png]] class Solution { public: bool hasPathSum(TreeNode* root, int targetSum) { vector<int>vec; sum(root,targetSum,vec,0);//第四个参数是当前这条路径...
![[Pasted image 20241128001603.png]] class Solution { public: bool hasPathSum(TreeNode* root, int targetSum) { vector<int>vec; sum(root,targetSum,vec,0);//第四个参数是当前这条路径...
class Solution { public: int minDepth(TreeNode* root) { if(root == nullptr) return 0; int m1 = minDepth(root->left);//简便记一下 int m2 = minDepth(root->r...
描述 平衡二叉树的性质:每个节点的左右两个子树的高度差的绝对值不超过 1; 题解 以下两种方法均基于以下性质推出:当前树的深度 等于 左子树的深度 与 右子树的深度 中的 最大值 +1 。 方法一:后序遍历 + 剪枝 (从底至顶) 思路是对二叉树做后序遍历,从底至顶返回子树深度,若判定某子树不是平衡树则 “剪枝” ,直接向上返回。 class Solution { publi...
相对于102.二叉树的层序遍历,就是最后把result数组反转输出一下就可以了 reverse(result.begin(), result.end()); // 反转数组
==这题一定要背下来、在leetcode上多写几遍; 还有由中、前序序列构造二叉树的,也要写!== ![[Pasted image 20241128005125.png]] class Solution { public: TreeNode* buildTree(vector<int>& inorder, vector<int>& pos...
int maxDepth(TreeNode* root) { if (root == nullptr) return 0;//空结点,返回0 return max(maxDepth(root->left), maxDepth(root->right)) + 1;//注意max函数要包含<algorithm>头文件 } 动画演...
![[Pasted image 20241124002835.png]] ![[Pasted image 20241124002904.png]] 在层序遍历模板的基础上加一个depth即可 求二叉树的最小深度 相对于 104.二叉树的最大深度 ,本题还也可以使用层序遍历的模板来解决,思路是一样的。 需要注意的是,只有当左右孩子都为空的时候,才说明遍历的最低点了。如果其中一个孩子为空则...
镜像对称: ![[Pasted image 20241124183213.png]] 该问题可以转化为:两个树在什么情况下互为镜像? 如果同时满足下面的条件,两个树互为镜像: 它们的两个根结点具有相同的值; 每个树的右子树都与另一个树的左子树镜像对称; 解法 1)递归法 我们可以实现这样一个 递归 函数,通过 同步移动 两个指针的方法来遍历这棵树,p 指针和 q 指针...
如果用IDE写代码的时候,本来应该有提示(即可以用tab打出来)的变量/对象等,如果没有提示了,一定要当心,基本上是出错了. ```java public LinkedListDeque() { private Node sentinel=new Node(null,10,null); … } public void addFirst(T item) { ...
(受归并排序与树遍历的启发) 归并排序的代码见归并排序 /*求长子兄弟树的高度的算法*/ int Height(EBNode * t) // 求 t 的高度 { if (t == NULL) return 0; // 空树的高度为 0 int maxsh = 0; EBNode * p = t -> eson; // p 指向 t 结点的长子 ...