摘要: ✅做题思路or感想: 这道题要从前中后序遍历的特点入手。因为后序遍历的最后一个节点必是根节点,故从次开始 如果数组长度为0,则说明是空节点 如果数组不为空,那么后序数组的最后一个元素作为节点元素 找到后序数组的最后一个元素在中序数组中的位置,作为切割位置 利用切割位置把中,后序数组切成左子树的中,后 阅读全文
posted @ 2022-03-28 22:59 北原春希 阅读(32) 评论(0) 推荐(0)
摘要: ✅做题思路or感想: 也是遍历一遍二叉树,判断路径总和和是否是叶子节点,要注意的是这里还需要加一个vector来记录路径 class Solution { public: vector<vector<int>>result; void dfs(TreeNode* cur, vector<int>ve 阅读全文
posted @ 2022-03-28 22:53 北原春希 阅读(35) 评论(0) 推荐(0)
摘要: ✅做题思路or感想: 也是遍历一遍二叉树的路径,每次遍历一个节点就把targeSum减去对应的节点值,如果最后是叶子节点并且targeSum为0,则符合条件 class Solution { public: bool flag = false; void dfs(TreeNode* cur, int 阅读全文
posted @ 2022-03-28 22:50 北原春希 阅读(36) 评论(0) 推荐(0)
摘要: ✅做题思路or感想: 直接遍历二叉树,然后用一个字符串记录一条遍历路径,然后遍历到叶子节点的时候就把字符串加入result里就好了 class Solution { public: vector<string> result; //存答案 void dfs(TreeNode* cur, string 阅读全文
posted @ 2022-03-28 22:47 北原春希 阅读(46) 评论(0) 推荐(0)
摘要: ✅做题思路or感想: 用递归后序遍历二叉树,然后从底部开始记录高度为0,然后往上加1。 每一次操作节点的时候比较左右子树的高度,如果有一棵树不符合条件,则直接把-1返回到最顶的根节点 class Solution { public: int getDepth(TreeNode* cur) { if 阅读全文
posted @ 2022-03-28 22:44 北原春希 阅读(35) 评论(0) 推荐(0)