zoukankan      html  css  js  c++  java
  • 求二叉树中节点的最大距离

    描述

    求二叉树中节点的最大距离

    分析

    二叉树中节点的最大距离=左子树中节点的最大距离+右子树中节点的最大距离

    代码

    class Node{
        public int data;
        public Node left;
        public Node right;
        public int leftMaxDistance; //存储该节点左子树距离根节点的最大距离
        public int rightMaxDistance; //存储该节点右子树距离根节点的最大距离
        public Node(int data){
            this.data=data;
            this.left=null;
            this.right=null;
        }
    }
    
    public class BinaryTree {
        private int maxLen=0;
        
        private int max(int a,int b){
            return a>b?a:b;
        }
        
        public void findMaxDistance(Node root){
            if(root==null)
                return;
            if(root.left==null)
                root.leftMaxDistance=0;
            if(root.right==null)
                root.rightMaxDistance=0;
            if(root.left!=null)
                findMaxDistance(root.left);
            if(root.right!=null)
                findMaxDistance(root.right);
            
            //计算左子树中距离根节点的最大距离
            if(root.left!=null)
                root.leftMaxDistance=max(root.leftMaxDistance,root.left.rightMaxDistance)+1;
            //计算右子树中距离根节点的最大距离
            if(root.right!=null)
                root.rightMaxDistance=max(root.rightMaxDistance,root.right.rightMaxDistance)+1;
            
            //获取二叉树所有节点的最大距离
            if(root.leftMaxDistance+root.rightMaxDistance>maxLen){
                maxLen=root.leftMaxDistance+root.rightMaxDistance;
            }
        }
    }
  • 相关阅读:
    致21岁的自己
    nginx 入门实战
    软件测试的分类
    Springboot 使用 Jedis
    NodeJS模块、包、NPM
    NodeJS介绍
    毫秒必争,前端网页性能最佳实践--转载
    IT主要在线学习网站
    电商峰值系统架构设计--转载
    查看w3wp进程占用的内存及.NET内存泄露,死锁分析--转载
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/6361822.html
Copyright © 2011-2022 走看看