leetcode——872.叶子相似的树

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

posted @ 2020-06-17 20:07  欣姐姐  阅读(155)  评论(0编辑  收藏  举报