• 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
  • 相关阅读:
    Swift 协议
    Objective C 链式调用
    objective-c 关键字和概念
    如何在Objective-C中实现链式语法?
    _视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
    Swift静态方法
    Swift静态属性
    objective-c 中代码块(blocks)
    OS笔记047代理传值和block传值
    Objective-C官方文档翻译 Block
  • 原文地址:https://www.cnblogs.com/jiajinyi/p/1656525.html
Copyright © 2020-2023  润新知