LeetCode 872. 叶子相似的树(Leaf-Similar Trees)

872. 叶子相似的树
872. Leaf-Similar Trees

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

LeetCode 872. 叶子相似的树(Leaf-Similar Trees)_第1张图片

LeetCode872. Leaf-Similar Trees简单

举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。

如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。

如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false。

提示:

  • 给定的两颗树可能会有 1 到 100 个结点。

Java 实现
TreeNode Class

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int x) {
        val = x;
    }
}
class Solution {
    public boolean leafSimilar(TreeNode root1, TreeNode root2) {
        if (root1 == null || root2 == null) {
            return root1 == null && root2 == null ? true : false;
        }
        StringBuffer sb1 = new StringBuffer();
        StringBuffer sb2 = new StringBuffer();
        preorder(root1, sb1);
        preorder(root2, sb2);
        return sb1.toString().equals(sb2.toString());
    }

    public void preorder(TreeNode root, StringBuffer sb) {
        if (root == null) {
            return;
        }
        if (root.left == null && root.right == null) {
            sb.append(root.val);
        }
        preorder(root.left, sb);
        preorder(root.right, sb);
    }
}

参考资料

  • https://leetcode.com/problems/leaf-similar-trees/
  • https://leetcode-cn.com/problems/leaf-similar-trees/

转载于:https://www.cnblogs.com/hglibin/p/10994616.html

你可能感兴趣的:(LeetCode 872. 叶子相似的树(Leaf-Similar Trees))