leetcode 2 和 c leetcode-解决方案力码#标题/链接代码文件注释

    1. 199: 使用 BFS,从右到左插入所有节点,选择列表中从右边开始的第一个节点的值,忽略该级别的其他节点。
  • 445: 反转两个列表并继续添加节点的值。反转后返回列表。

其他解决方案: 将相同位置的节点相加,不考虑进位,并继续在前面添加节点。例如:1->9 & 2 得到 11->9->1。然后通过在前面添加节点来处理进位,最终变成 2->0->1。

  • 287: 查找弗洛伊德循环起始位置。

  • 863: 将 BFS 应用于直接下一个节点(子节点和父节点),需要维护每个节点的父节点映射。

  • 542: 将所有具有 0 的单元放在队列中并应用 BFS。如果单元格具有更高的距离,则更新距离,表示该单元格更早被发现。

其他解决方案: 对每个具有 1 的单元格应用 BFS,比较所有 0 单元格(在同一迭代中)和已发现的单元格距离,保持最小值。

  • 1339: 应用后序遍历,不断更新每个节点的总和(总和=左树总和+右树总和+根总和),然后应用前序遍历并计算乘积。

其他解决方案: 应用后序遍历。