872. 叶子相似的树
叶子相似的树
请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。
如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。
思路+代码+注释:
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
StringBuilder leafSbOne=new StringBuilder();
StringBuilder leafSbTwo=new StringBuilder();
findLeafStr(root1,leafSbOne);
findLeafStr(root2,leafSbTwo);
String leafOneStr=leafSbOne.toString();
String leafTwoStr=leafSbTwo.toString();
if (leafOneStr.equals(leafTwoStr))
{
return true;
}else {
return false;
}
}
private void findLeafStr(TreeNode root,StringBuilder sb)
{
if (root==null)
{
return;
}
if (root.left==null && root.right==null)
{
sb.append(root.val);
}
findLeafStr(root.left,sb);
findLeafStr(root.right,sb);
}