Deepest Node in a Binary Tree
题目:
解题思路:
这道题应该是用bfs来解。然后需要注意的地方就是在做bfs的时候需要将右子树先放进去,然后放进去左子树。
代码:
代码:
找到一个binary tree中最深的node,(如果有多个最大深度node,返回最左边的node)
解题思路:
这道题应该是用bfs来解。然后需要注意的地方就是在做bfs的时候需要将右子树先放进去,然后放进去左子树。
代码:
Find the max depth of a binary tree:public class DeepestNodeinaBinaryTree { public int find(TreeNode root){ if(root == null){ return 0; } Queue<TreeNode> queue = new LinkedList<>(); TreeNode curr = root; queue.offer(curr); int rst = curr.val; while(!queue.isEmpty()){ int size = queue.size(); for(int i = 0; i <= size - 1; i++){ curr = queue.poll(); rst = curr.val; if(curr.right != null){ queue.offer(curr.right); } if(curr.left != null){ queue.offer(curr.left); } } } return rst; } public static void main(String[] args){ DeepestNodeinaBinaryTree deepestNodeinaBinaryTree = new DeepestNodeinaBinaryTree(); TreeNode node4 = new TreeNode(4); TreeNode node1 = new TreeNode(1); TreeNode node2 = new TreeNode(2); TreeNode node3 = new TreeNode(3); TreeNode node5 = new TreeNode(5); TreeNode node6 = new TreeNode(6); TreeNode node7 = new TreeNode(7); node3.right = node2; node3.left = node1; node6.left = node5; node6.right = node7; node4.left = node3; node4.right = node6; int rst = deepestNodeinaBinaryTree.find(node4); System.out.println(rst); } }
代码:
public int maxDepth(TreeNode root) {
if(root == null){
return 0;
}
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}

Comments
Post a Comment