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 max_distance { 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; }else { findmaxdistance(root.left); } if(root.right==null) { root.rightmaxdistance=0; }else { findmaxdistance(root.right); } if(root.left!=null) { root.leftmaxdistance=max(root.left.leftmaxdistance,root.leftrightmaxdistance)+1; } if(root.right!=null) { root.rightmaxdistance=max(root.right.leftmaxdistance,root.right.rightmaxdistance)+1; } if(root.leftmaxdistance+root.rightmaxdistance>maxlen) { maxlen=root.leftmaxdistance+root.rightmaxdistance; } } }
Java:求二叉树中节点的最大距离
最新推荐文章于 2021-03-10 13:08:14 发布