java非递归写法
bfs
,对分层打印二叉树进行改进。遍历完一层就加1
// 非递归类似分层打印。bfs
class Solution {
static int ans = 0;
public int treeDepth(TreeNode root) {
bfs(root);
return ans;
}
public void bfs(TreeNode root) {
if(root == null) return;
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
while(!q.isEmpty()) {
int size = q.size();
// 这是一层的
for(int i = 0; i < size; i++) {
TreeNode tmp = q.poll();
if(tmp.left != null) q.offer(tmp.left);
if(tmp.right != null) q.offer(tmp.right);
}
ans++;
}
}
}
嗯呢。其实就是层序遍历,然后计算即可