有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。
给定二叉树的根节点root,请返回所求距离。
- 复习一下关于树的相关知识,深度优先遍历(DFS)和广度优先遍历(BFS)等
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class MaxMinTree {
public static void main(String[] args) {
// TODO Auto-generated method stub
MaxMinTree tree = new MaxMinTree();
TreeNode root = new TreeNode(5);
TreeNode left = new TreeNode(4);
TreeNode right = new TreeNode(6);
root.left = left;
root.right = right;
TreeNode r2 = new TreeNode(8);
right.right = r2;
Map<TreeNode, TreeNode> map=new HashMap<>();
System.out.println(tree.getDis(root));
//dfs
/*tree.dfs(root, map, 1);
System.out.println(tree.dpest);