得到当前目录的最大深度以及最深路径

看到同事说需要得到目录的深度,想了一下,查了下资料,组合出下面这条命令:

find ./ -type d | awk -F'/' '{print NF-1" "$0}' | sort | tail -1


解释一下:

find命令查找出所有的目录

awk命令以/为分隔符,打印出分割后的条数,需要减一,因为最后一层目录后面是没有跟/字符的

sort命令排一下序,因为最前面是数字,所以数字最大的会排在最后面

tail命令只打出最后一行,也就是打印出目录最深的


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 二叉树中叶结点的个数是指没有子节点的节点个数,可以通过遍历整个二叉树,统计叶节点的个数来得到。 二叉树结点总数是指整个二叉树中节点的总个数,可以通过遍历整个二叉树,统计节点的个数来得到。 二叉树的深度是指从根节点到最深叶节点的路径长度,可以通过递归遍历二叉树,每次记录当前节点的深度,最终得到最大深度得到。 ### 回答2: 二叉树是一种重要的树形数据结构,其中每个节点最多只有两个子节点,分别为左子节点和右子节点。二叉树可以用来存储和管理各种数据信息,如文件系统、数据库索引等。在二叉树中,叶节点是指没有子节点的节点,二叉树的深度是指从根节点到某个叶节点的最长路径长度。 要求二叉树中叶节点的个数,可以采用遍历二叉树的方法,将每个节点都进行判断,若该节点没有左右子节点,则该节点就是叶节点。可以使用递归的方式实现代码,从根节点开始遍历,当遇到叶节点时,将叶节点的个数加1。遍历完成后,即可得到二叉树中叶节点的个数。 要求二叉树结点总数,也可以采用递归的方法,从根节点开始,每个节点的总数等于左子树节点的总数加上右子树节点的总数再加上1(当前节点)。因此可以递归地计算下去,直到叶节点,这时候总数为1。最后将每个节点计数相加即可得到二叉树的结点总数。 要求二叉树的深度,同样可以采用递归的方法来实现。以该节点为根的深度等于其左子树的深度与右子树的深度之间的较大值再加上1。因此可以递归地计算下去,直到叶节点,这时候深度为1。最后将每个节点的深度计算出来,取其中的最大值即可得到二叉树的深度。 ### 回答3: 二叉树是一种经典的树形数据结构,由根节点和两个子树组成,其中子树本身也是一棵二叉树。在二叉树中,叶子节点是没有子节点的节点,而非叶节点是至少有一个子节点的节点。求二叉树中的叶子节点数量、节点总数和深度是二叉树相关问题中的常见问题。 首先,要求二叉树中的叶子节点数量。我们可以通过递归遍历所有子树,找出叶子节点并计数。以下是求二叉树叶子节点个数的代码: ``` int countLeafNodes(BinaryTree tree) { if (tree == null) { return 0; } if (tree.left == null && tree.right == null) { return 1; } return countLeafNodes(tree.left) + countLeafNodes(tree.right); } ``` 在上述代码中,我们采用递归方式遍历二叉树。如果节点为空,说明该子树中没有节点,返回零;否则,如果该节点没有左右子树,说明该节点为叶子节点,返回1;最后,递归遍历左右子树,统计叶子节点个数并返回。 其次,要求二叉树结点总数。同样采用递归遍历的方式,统计每个节点出现的次数。以下是求二叉树节点总数的代码: ``` int countNodes(BinaryTree tree) { if (tree == null) { return 0; } return countNodes(tree.left) + countNodes(tree.right) + 1; } ``` 在上述代码中,我们采用递归方式遍历二叉树。如果节点为空,说明该子树中没有节点,返回零;否则,递归遍历左右子树,并将其节点总数相加,再加上当前节点,即为整棵二叉树的节点总数。 最后,要求二叉树的深度。在二叉树中,深度也称为高度,是从根节点到最底层节点的最长路径的长度。我们同样采用递归的方式遍历二叉树,求出左右子树的深度,然后取最大值加1即可。以下是求二叉树深度的代码: ``` int getTreeDepth(BinaryTree tree) { if (tree == null) { return 0; } int leftDepth = getTreeDepth(tree.left); int rightDepth = getTreeDepth(tree.right); return Math.max(leftDepth, rightDepth) + 1; } ``` 在上述代码中,我们采用递归方式遍历二叉树。如果节点为空,说明该子树中没有节点,返回零;否则,递归计算左右子树的深度,取最大值并加上1,即为该节点所在子树的深度。整棵二叉树的深度即为根节点的深度

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值