摘要: 终于自己做出来一道。。。 递归思路1 参考递归求解最大深度,构造新函数,将节点当前路径和当作额外参数传入 这个题比较特殊的地方在于,必须是叶子节点所在的路径才有效,因此在return true的条件中加入了left right均为`nullptr 返回时使用||不影响某个分支上的正确结果 class 阅读全文
posted @ 2020-07-16 17:39 imagineincredible 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本来尝试使用层次遍历,发现根本无法解决,原因是层序遍历没有左右子树的信息。 递归也没什么思路,就直接参考官方题解 递归解法 将问题转化为两棵树什么情况下对称? 两个根节点具有相同的值 每个树的右子树和另一棵树的左子树镜像对称 代码如下,值得注意的是下面的判断顺序可以实现先判断两者均为nullptr, 阅读全文
posted @ 2020-07-16 15:57 imagineincredible 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 本题给定的函数参数只有结点指针,由于无法传入当前节点的深度,无法使用自顶向下的方法求解 递归解法-自底向上 class Solution { public: int maxDepth(TreeNode* root) { if(root == nullptr) return 0; int leftDe 阅读全文
posted @ 2020-07-16 11:22 imagineincredible 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 思路 使用队列。每次遍历一层节点,在遍历前先获得每层节点的个数,对整层遍历,同时将不为空的左右子节点添加到队列中 代码如下: class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector 阅读全文
posted @ 2020-07-16 10:49 imagineincredible 阅读(97) 评论(0) 推荐(0) 编辑