LeetCode:Maximum Depth of Binary Tree

来源:互联网 发布:零基础学java看什么书 编辑:程序博客网 时间:2024/05/22 03:20

Maximum Depth of Binary Tree

 Total Accepted: 69754 Total Submissions: 154717My Submissions

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Hide Tags
 Tree Depth-first Search
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */
一、递归解法
public int maxDepth(TreeNode root) {        if(root==null){            return 0;        }        int l=maxDepth(root.left);        int r=maxDepth(root.right);        return l>r ? l+1:r+1;    }
二、非递归接发(BFS、广度优先搜索)[使用队列实现(LinkedList)]
public int maxDepth(TreeNode root) {         if(root == null)            return 0;                   int depth = 0;         LinkedList<TreeNode> queue = new LinkedList<TreeNode>();         queue.add(root);         int curNum = 1; //num of nodes left in current level         int nextNum = 0; //num of nodes in next level         while(!queue.isEmpty()){             TreeNode n = queue.poll();             curNum--;             if(n.left!=null){                 queue.add(n.left);                 nextNum++;             }             if(n.right!=null){                 queue.add(n.right);                 nextNum++;             }             if(curNum == 0){                 curNum = nextNum;                 nextNum = 0;                 depth++;             }         }         return depth;    }
0 0
原创粉丝点击