连山网站建设浙江网站建设营销
连山网站建设,浙江网站建设营销,服装行业网站建设规划,html5手机端开发LC 110 平衡二叉树思路#xff1a;后序递归#xff0c;自底向上求高度。对每个节点求左右子树高度#xff0c;差值超过 1 就不平衡。关键技巧是用 -1 作为已经不平衡的标记向上传递#xff0c;一旦某个子树返回 -1#xff0c;直接跳过计算继续往上传#xf…LC 110 · 平衡二叉树思路后序递归自底向上求高度。对每个节点求左右子树高度差值超过 1 就不平衡。关键技巧是用 -1 作为已经不平衡的标记向上传递一旦某个子树返回 -1直接跳过计算继续往上传避免重复遍历。又一次用到高度的概念——后序自底向上和 104 的最大深度是同一套逻辑。LC 257 · 二叉树的所有路径思路前序递归 回溯。第一次遇到回溯路径从根往叶子走前序记录路径到叶子节点时保存结果。递归返回时要把当前节点从路径里移除——这就是回溯撤销选择回到上一个状态去探索别的分支。Python 里如果用字符串拼接传参因为字符串不可变天然有回溯效果用列表的话要手动pop()两种写法都值得试一下感受回溯的本质。LC 404 · 左叶子之和思路递归时传入标记区分左右子节点。左叶子的定义是叶子节点且是其父节点的左子节点。单看节点本身无法判断必须在父节点层面判断——递归时传一个is_left标记到叶子节点时检查标记决定要不要计入结果。题意理解清楚了代码就很简单。LC 222 · 完全二叉树的节点个数思路利用完全二叉树性质O(log²n) 解法。普通递归遍历是 O(n)但完全二叉树有特殊性质可以利用对任意子树分别往左和往右走到底如果深度相同说明是满二叉树节点数直接用公式2^depth - 1算不用继续递归。只有左右深度不同时才继续往下找大幅剪枝。今天最值得记的是 257 的回溯思想——递归进入时做选择递归返回时撤销选择这个模式在后面回溯专题会反复出现今天算是提前种下一颗种子。明天继续