多叉树的高度

我们先来回忆一下二叉树的高度问题。

二叉树的高度是由左右子树最高的那一颗来决定的

我们通过分别递归二叉树的左右子树找到最高的那一颗就可以。

 

下图为多叉树:

 

 

 多叉树的高度我们也可以通过递归来解决,只不过多叉树的子树可能很多,那我们只能通过遍历每个节点的字节,并找到同层节点最高的那一颗并返回当前最高的高度就可以了。

 

C# 代码如下

  public class TreeNode
    {
        public int Val { get; set; }
        
        public List<TreeNode>? ChildList { get; set; }

        public TreeNode(int val)
        {
            Val = val;
        }
    }  
  //多叉树的高度
 public int GetMultiwayTreeHeight(TreeNode tree)
        {
            if(tree == null)
            {
                return 0;
            }

            if (tree.ChildList == null)
            {
                return 1;
            }

            int maxheight = int.MinValue;
     //遍历每个节点的子节点,找到最高的高度
foreach(var item in tree.ChildList) { maxheight = Math.Max(GetMultiwayTreeHeight(item) + 1, maxheight); } return maxheight; }

 

posted @ 2023-02-14 15:26  爽的小八戒  阅读(106)  评论(0)    收藏  举报