Skip to content

Commit f5a0c5c

Browse files
authored
Update Leaf-Similar Trees.java
1 parent 2446f4b commit f5a0c5c

File tree

1 file changed

+16
-22
lines changed

1 file changed

+16
-22
lines changed

Easy/Leaf-Similar Trees.java

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,23 @@
1414
* }
1515
*/
1616
class Solution {
17-
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
18-
return getLeaves(root1).equals(getLeaves(root2));
19-
}
20-
21-
private List<Integer> getLeaves(TreeNode root) {
22-
Stack<TreeNode> stack = new Stack<>();
23-
List<Integer> leaves = new ArrayList<>();
24-
while (root != null) {
25-
stack.push(root);
26-
root = root.left;
17+
public boolean leafSimilar(TreeNode root1, TreeNode root2) {
18+
StringBuilder leavesOne = new StringBuilder();
19+
StringBuilder leavesTwo = new StringBuilder();
20+
populateLeaves(root1, leavesOne);
21+
populateLeaves(root2, leavesTwo);
22+
return leavesOne.toString().equals(leavesTwo.toString());
2723
}
28-
while (!stack.isEmpty()) {
29-
TreeNode removed = stack.pop();
30-
if (removed.left == null && removed.right == null) {
31-
leaves.add(removed.val);
32-
} else {
33-
TreeNode rightNode = removed.right;
34-
while (rightNode != null) {
35-
stack.push(rightNode);
36-
rightNode = rightNode.left;
24+
25+
private void populateLeaves(TreeNode root, StringBuilder leaves) {
26+
if (root == null) {
27+
return;
3728
}
38-
}
29+
if (root.left == null && root.right == null) {
30+
leaves.append(root.val).append(",");
31+
return;
32+
}
33+
populateLeaves(root.left, leaves);
34+
populateLeaves(root.right, leaves);
3935
}
40-
return leaves;
41-
}
4236
}

0 commit comments

Comments
 (0)