Two binary trees are considered leaf-similar if their leaf value sequence is the same.
Return true
if and only if the two given trees with head nodes root1
and root2
are leaf-similar.
answer:
public class Solution {
public void TraverseNode(StringBuilder leafStr,TreeNode node)
{
if (node == null)
{
return;
}
if (node.left == null && node.right == null)
{
if (leafStr == null)
{
leafStr = new StringBuilder();
}
leafStr.Append(node.val+"-");
}
if (node.left != null)
{
TraverseNode(leafStr, node.left);
}
if (node.right != null)
{
TraverseNode(leafStr, node.right);
}
}
public bool LeafSimilar(TreeNode root1, TreeNode root2)
{
StringBuilder strLeaf1 = new StringBuilder();
StringBuilder strLeaf2 = new StringBuilder();
TraverseNode(strLeaf1, root1);
TraverseNode(strLeaf2, root2);
return strLeaf1.Equals(strLeaf2);
}
}