![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度优先搜索
Taohongfei_huster
这个作者很懒,什么都没留下…
展开
-
102. Binary Tree Level Order&&103. Binary Tree&&107. Binary Tree Level Order II&&199.Binary Tree Rig
乍一看我一脸懵逼,不知如何下手。但仔细想一下,方法还是有点意思。前面几道题都是树,树的遍历是很常见的题目。这道题采取先序遍历(当然,中序和后续遍历也是可以的,且只用改变一行代码),每向下遍历一层,就新建一个列表并编号,这样,每一层就有一个对应的集合,遍历到相应层的元素,放到对应的集合中去。 /** * Definition for a binary tree node. * publi...原创 2018-09-24 19:33:08 · 108 阅读 · 0 评论 -
112. Path Sum&&113. Path Sum II&&437. Path Sum III
如果从根节点开始找,每次sum减掉val则到了叶子节点的时候,sum肯定等于叶子节点的值。否则,就没有这么一条路径。朴素深搜,好装逼的词!! /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode r...原创 2018-12-06 15:33:33 · 129 阅读 · 0 评论 -
543. Diameter of Binary Tree
对于任意节点node,可以计算其左子树的深度left和右子树的深度right,left+right+1即为过node的最长距离。遍历树的节点,取最大值即可: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre...原创 2018-12-13 10:50:43 · 123 阅读 · 0 评论 -
222. Count Complete Tree Nodes
常规思路是遍历树。代码: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class So...原创 2018-11-12 20:06:28 · 95 阅读 · 0 评论 -
79.Word Search&&212.Word Search||
class Solution { boolean[][] visited; public boolean exist(char[][] board, String word) { visited = new boolean[board.length][board[0].length]; for (int i = 0; i &...原创 2018-11-05 17:00:06 · 152 阅读 · 0 评论 -
211.Add and Search Word
该题有两种思路: one:利用Trie树实现: class WordDictionary { private class Trie { public boolean isWord; public Trie[] children; public Trie() { this.isWord = false...原创 2018-11-05 16:09:36 · 141 阅读 · 0 评论 -
一道01矩阵题
题目:对于一个只有0和1的二维矩阵,上下或者左右相邻元素都为1则为一块(斜着不算),求一共有多少取值为1的连续块. import java.util.Random; /*需求:对于一个只有0和1的二维矩阵,上下或者左右相邻元素都为1则为一块(斜着不算),求一共有多少取值为1的连续块.如下图: * * 0 1 0 1 1 0 * 1 1 0 0 1 1 * 0 0 1 ...原创 2018-09-22 22:45:48 · 506 阅读 · 0 评论 -
200. Number of Islands
该题实际上就是返回连续的含有1的区域的数目。对每个网格点grid[i][j]运用深度优先搜索(上下左右),每进行一次,就把一个连续1区域变成0。程序如下: public class Solution { private int n; private int m; public int numIslands(char[][] grid) { int count = 0; ...原创 2018-10-11 15:29:19 · 83 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
这道题和leetcode第102题没啥区别,通过对树进行遍历即可。设置一个list集合,每向下一层,就给该层编一个号,将编号放入集合。当层数大于等于list元素个数(总的层数)时,需要新加一个元素到list中,如果不是,继续遍历即可。程序如下: /** * Definition for a binary tree node. * public class TreeNode { * ...原创 2018-09-25 17:05:48 · 125 阅读 · 0 评论 -
538. Convert BST to Greater Tree
利用树遍历的有序性:中序遍历。当然,递归和非递归的想法总是合理的。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x...原创 2019-01-18 16:25:03 · 176 阅读 · 0 评论