输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
2018-03-06 21:16
330 查看
package com.niuke; import java.util.LinkedList; import java.util.Queue; /** * Created by admin on 2018/3/6. */ public class DeepTree { //求二叉树的深度 //1 递归 没啥说的 public int TreeDepth2(TreeNode root) { //return root==null?0:Math.max(TreeDepth(root.left),TreeDepth(root.right)); if(root==null) { return 0; } int left=TreeDepth(root.left); int right=TreeDepth(root.right); return Math.max(left,right)+1; } //2 非递归:按层次遍历 用队列 public int TreeDepth(TreeNode root) { if(root==null) { return 0; } Queue<TreeNode> queue=new LinkedList<TreeNode>(); queue.add(root); int depth=0;//深度 int count=0;//该层的最左节点 int lastcount=1;//该层的最右节点 while(queue.size()!=0) { TreeNode head=queue.poll();//将队列中的节点弹出,并将其左右节点放入 count++; if(head.left!=null) { queue.add(head.left); } 4000 if(head.right!=null) { queue.add(head.right); } if(count==lastcount) {//弹出该层的最后一个节点 lastcount=queue.size();//当前队列的长度就是下一层的最后节点 depth++; count=0;//重置最左节点 } } return depth; } }
相关文章推荐
- 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
- 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 面试题:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- flag2在二元树中找出和为某一值的所有路径 题目:输入一个整数和一棵二元树。 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。 打印出和与输入整数相等的所有路径。 例如 输入整数
- <仅是自己做笔记。。。系列-4>输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径
- 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径
- java 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的结点形成一条路径。
- 二叉树的层次,中序非递归遍历,以递归前序的方式构造二叉树,将二叉树中的e更新为d,输出从根结点出发 到指定结点,依次经过的祖先(即路径),由前序和中序还原二叉树
- 在二叉树中找到累加和为指定值的最长路径长度
- c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度
- POJ 2499 求二叉树结点到根结点的路径长度 递归 二叉树
- POJ 2499 求二叉树结点到根结点的路径长度 递归 二叉树
- 打印出二叉树中结点值的和为输入整数的所有路径