摘要: 二叉树——124. 二叉树中的最大路径和 题目: 思路: 思路就是递归,既然是最大,那肯定是左边的最大加上右边的最大再加上root->val才是最大。剩下的具体思路都在代码注释中。 代码: class Solution { // 存放最大路径和 int ans; public: int dfs(Tr 阅读全文
posted @ 2021-04-11 18:06 Originhhh 阅读(80) 评论(0) 推荐(0)
摘要: 二叉树——105. 从前序与中序遍历序列构造二叉树 题目: 思路: 这题就是考察两种遍历的特点,前序遍历的第一个为root结点,知道了root结点,就可以在中序遍历中知道在root结点之前的为左子树,在root结点之后的为右子树。然后就可以递归的构造出左子树和右子树。 具体实现的时候,就是要借助哈希 阅读全文
posted @ 2021-04-11 12:28 Originhhh 阅读(62) 评论(0) 推荐(0)
摘要: 二叉树——543. 二叉树的直径 题目: 思路: 二叉树的直径,就是求最长路径然后减1。所以现在问题就变为了求最长路径的问题。 最长路径的问题又可以类比求最大路径和的问题,所以就是求左子树的最长路径和右子树的最长路径然后加上root结点就是最长路径了,遍历顺序自然和求最大路径和一样也是后序遍历,然后 阅读全文
posted @ 2021-04-11 11:55 Originhhh 阅读(82) 评论(0) 推荐(0)
摘要: 二叉树——144. 二叉树的前序遍历 题目: 思路: 前序遍历用递归,递归逻辑就是前序遍历的顺序:中左右,然后就行了。 代码: class Solution { public: void traversal(TreeNode* node, vector<int>& vec){ // 终止条件 if( 阅读全文
posted @ 2021-04-10 16:32 Originhhh 阅读(61) 评论(0) 推荐(0)
摘要: 二叉树——110. 平衡二叉树 题目: 思路: 这题采用DFS,自底向上查看,如果底下的树不平衡则会返回-1,因此我们也不用在继续递归。 注意我们是先从左边开始,如果左边都不平衡那么就直接return -1了,也就不在递归右边了。 题解作者:Xiaohu9527 链接:https://leetcod 阅读全文
posted @ 2021-04-10 13:20 Originhhh 阅读(59) 评论(0) 推荐(0)
摘要: 二叉树——104. 二叉树的最大深度 题目: 思路: 还是老样子,就是看你用BFS还是DFS。 DFS:递归层数较大时有风险。就是递归,然后看左子树和右子树的maxdepth然后别忘了加1。 BFS:和右视图差不多,还是借助队列存放一层元素,还要设置个变量depth记录层数。这里我们选择BFS 代码 阅读全文
posted @ 2021-04-10 12:37 Originhhh 阅读(67) 评论(0) 推荐(0)
摘要: 二叉树——199. 二叉树的右视图 题目: 思路: 层序遍历(BFS),记录下每层最后一个结点。 代码: class Solution { public: vector<int> rightSideView(TreeNode* root) { queue<TreeNode*> que; if(roo 阅读全文
posted @ 2021-04-10 11:55 Originhhh 阅读(58) 评论(0) 推荐(0)
摘要: 二叉树——94. 二叉树的中序遍历 题目: 思路: 就递归啊,套模板,别想迭代了,迭代还要借助栈直接考虑递归,老舒服了。记着中序遍历的顺序就是:左中右,这是我们单层递归的逻辑。 代码: class Solution { public: void inorder(TreeNode* root, vec 阅读全文
posted @ 2021-04-09 22:56 Originhhh 阅读(61) 评论(0) 推荐(0)
摘要: 二叉树——236. 二叉树的最近公共祖先 题目: 思路: 后续遍历+DFS:具体思路参照了题解中的解析 代码: class Solution { public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* 阅读全文
posted @ 2021-04-08 23:08 Originhhh 阅读(56) 评论(0) 推荐(0)
摘要: 二叉树——102. 二叉树的层序遍历 题目: 思路: 就是层序遍历,一层层扫下去,然后通过队列去实现,一个队列先暂存这一层的所有结点,然后另一个队列通过push_back的方式,实现从左到右的访问。 代码: class Solution { public: vector<vector<int>> l 阅读全文
posted @ 2021-04-06 23:12 Originhhh 阅读(157) 评论(0) 推荐(0)