A Monk

200. 岛屿数量

问题200 岛屿数量 ★★☆☆☆ https://leetcode-cn.com/problems/number-of-islands/ 从深度优先遍历的角度来考虑这个题目,思路就比较清晰了,以某一个节点为起始,按照一定顺序去深度优先遍历值为1的节点,并标注访问状态,直到没有能到达的值为1的节点结束,这样就等于把某一个连通的岛屿的所有节点全部访问到并标注了访问状态。上层做二维数组遍历,碰到...

130. 被围绕的区域

问题130 被围绕的区域 ★★☆☆☆ https://leetcode-cn.com/problems/surrounded-regions/ 这种二维数组按元素属性做连通的题目,可以说是比较典型的遍历类题目了。对于本题,从DFS的角度考虑,给定一个元素,如果元素值是X,跳过即可;如果元素值是O,那么开始遍历,目标是把和这个元素连通的所有元素都遍历到。比如,先往上,再往下,再往左,再往右,...

99. 恢复二叉搜索树

问题99 恢复二叉搜索树 https://leetcode-cn.com/problems/recover-binary-search-tree/ 根据题目要求,一颗二叉搜索树,有两个节点的位置被对调了,现在需要恢复到对调前的状态,使它变为有效的二叉搜索树。首先这里不需要纠结于操作树指针,只需要定位到两个被对调的节点,然后交换它们的值就可以了。那么如何定位到两个被对调的节点呢?还得从二叉搜...

449. 序列化和反序列化二叉搜索树

问题449 序列化和反序列化二叉搜索树 ★★☆☆☆ https://leetcode.cn/problems/serialize-and-deserialize-bst/ 题目要求很好理解了,简单来说,给定一颗二叉查找树,写两个方法,一个方法可以把二叉查找树序列化为字符串,另一个方法可以把序列化的字符串反序列化为同样结构的二叉查找树。 我是从反序列化方法入手的,先搞清楚如何从一个字符串能...