872. 叶子相似的树


请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/leaf-similar-trees
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


叶子顺序一致,个数相同。
找到所有的叶子节点,比较即可。


 public boolean leafSimilar(TreeNode root1, TreeNode root2) {
        List<Integer> ret1 = new ArrayList<>();
        List<Integer> ret2 = new ArrayList<>();
        dfs(root1,ret1);
        dfs(root2,ret2);
        if(ret1.size() != ret2.size()) {
            return false;
        }

        for(int i=0;i<ret2.size();i++) {
            if(ret1.get(i) != ret2.get(i)) {
                return false;
            }
        }
        return true;

    }

    public void dfs(TreeNode node, List<Integer> leafs) {
        // 出现一个节点有一个孩子,那么递归时node将为null
        if(node == null) {
            return;
        }

        if(node.left == null && node.right == null) {
            leafs.add(node.val);
            return;
        }

        dfs(node.left, leafs);
        dfs(node.right, leafs);
    }
posted @ 2022-02-23 16:37  一颗青菜  阅读(2)  评论(0)    收藏  举报