• C#获取二叉树深度及分层遍历二叉树


    尝试了一下用C#写了一下二叉树的相关算法:

    代码
            #region 获取二叉树深度
            
    static int z, d = 0;    //z用于记录遍历到某节点时的深度,d用于记录最大深度
            static int GetTreeDep(TreeNode node)
            {
                z
    ++;
                
    if (d < z)
                    d 
    = z;
                
    if (node.leftNode != null)
                {
                    GetTreeDep(node.leftNode);
                    z
    --;
                }
                
    if (node.rightNode != null)
                {
                    GetTreeDep(node.rightNode);
                    z
    --;
                }
                
    return d;
            }
            
    #endregion


            
    #region 分层遍历二叉树
             
    static ArrayList al = new ArrayList();
            
    static ArrayList RecursiveTreeByLevel(TreeNode node)
            {
                k
    ++;
                
    if (al.Count < k)
                {
                    al.Add(node.nodeName);
                }
                
    else
                {
                    al[k 
    - 1+= node.nodeName;
                }

                
    if (node.leftNode != null)
                {
                    RecursiveTreeByLevel(node.leftNode);
                    k
    --;
                }
                
    if (node.rightNode != null)
                {
                    RecursiveTreeByLevel(node.rightNode);
                    k
    --;
                }
                
    return al;
            }
            
    #endregion
  • 相关阅读:
    用 Mac 给树莓派重装系统
    Python:matplotlib 中文乱码的解决方案
    Python: 通过 pip 安装第三方包后依然不能 import
    Python: 安装 sklearn 包出现错误的解决方法
    grub2引导安装kali2.0及安装ibus拼音输入法
    2015移动安全挑战赛 第一题
    Linux kali 3.14-kali1-amd64 编译安装 wine 1.7.33
    git clone https协议问题
    常见问题
    Sieve_of_Eratosthenes
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/1656525.html
Copyright © 2020-2023  润新知