public boolean leafSimilar(TreeNode root1, TreeNode root2) { //要想找到两棵树的叶子节点的值是不是一样,就得通过遍历判断来得到,同时存储在一个数组中 ArrayList<Integer> leaf1 = new ArrayList<>(); ArrayList<Integer> leaf2 = new ArrayList<>(); //对树进行遍历 //创建一个栈,用于存储树的所有节点 Stack<TreeNode> stack = new Stack<>(); TreeNode t1 = root1; TreeNode t2 = root2; //还得对节点进行标记,才能知道哪个节点被访问过 leafsSearch(t1,leaf1); leafsSearch(t2,leaf2); return leaf1.equals(leaf2); } public void leafsSearch(TreeNode t,ArrayList<Integer> list){ if(t!=null){ if(t.left == null && t.right == null){ list.add(t.val); }else{ leafsSearch(t.left,list); leafsSearch(t.right,list); } } }
——2020.6.17