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;
            }
        }
    }
  • 相关阅读:
    时间操作
    2021.10.9数据结构实验课作业
    2021.9.28数据结构实验课作业
    2021.9.15数据结构实验课作业
    2021.9.7数据结构实验课作业
    苹果ios开发,CocoaPods安装方法-2021/9/11
    写组件库文档常用的技术
    document.execCommand 的用法
    手写JSON.stringify
    Object常用方法
  • 原文地址:https://www.cnblogs.com/zadomn0920/p/6361822.html
Copyright © 2011-2022 走看看