100 . Same Tree
Easy
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
0ms:
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == q) return true;
if (p == null || q == null) return false;
return p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
129 . Sum Root to Leaf Numbers
Easy
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path 1->2->3 which represents the number 123.
Find the total sum of all root-to-leaf numbers.
Note: A leaf is a node with no children.
public int sumNumbers(TreeNode root) {
if (root == null) return 0;
int sum = 0;
List<Integer> sumList = new ArrayList<Integer>();
getSum(0, root, sumList);
for (int i : sumList) {
sum += i;
}
return sum;
}
private void getSum(int tmp, TreeNode p, List<Integer> sumList) {
tmp = tmp * 10 + p.val;
if (p.left == null && p.right == null) {
sumList.add(tmp);
}
if (p.left != null) {
getSum(tmp, p.left, sumList);
}
if (p.right != null) {
getSum(tmp, p.right, sumList);
}
}