/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
Node n8 = new Node(4, null, null);
Node n7 = new Node(7, null, null);
Node n5 = new Node(5, n7, n8);
Node n6 = new Node(4, null, null);
Node n4 = new Node(2, null, null);
Node n2 = new Node(3, n4, n5);
Node n3 = new Node(5, null, n6);
Node n1 = new Node(6, n2, n3);
System.
out.
println(getSum
(n1
)); }
public static int getSum(Node head) {
List<String> paths = getAllPaths(head);
int total = 0;
}
return total;
}
private static List<String> getAllPaths(Node head) {
if (head == null) {
return null;
}
List<String> left = getAllPaths(head.getLeft());
List<String> right = getAllPaths(head.getRight());
List<String> results = new ArrayList<>();
if (left == null && right == null) {
results.
add(String.
valueOf(head.
getData())); }
if (right != null) {
results.
add(String.
valueOf(head.
getData()) + path
); }
}
if (left != null) {
results.
add(String.
valueOf(head.
getData()) + path
); }
}
return results;
}
private static class Node {
private final int data;
private final Node left;
private final Node right;
public Node(int data, Node left, Node right) {
this.data = data;
this.left = left;
this.right = right;
}
public int getData() {
return this.data;
}
public Node getLeft() {
return this.left;
}
public Node getRight() {
return this.right;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlOb2RlIG44ID0gbmV3IE5vZGUoNCwgbnVsbCwgbnVsbCk7CgkJTm9kZSBuNyA9IG5ldyBOb2RlKDcsIG51bGwsIG51bGwpOwoJCU5vZGUgbjUgPSBuZXcgTm9kZSg1LCBuNywgbjgpOwoKCQlOb2RlIG42ID0gbmV3IE5vZGUoNCwgbnVsbCwgbnVsbCk7CgoJCU5vZGUgbjQgPSBuZXcgTm9kZSgyLCBudWxsLCBudWxsKTsKCgkJTm9kZSBuMiA9IG5ldyBOb2RlKDMsIG40LCBuNSk7CgkJTm9kZSBuMyA9IG5ldyBOb2RlKDUsIG51bGwsIG42KTsKCgkJTm9kZSBuMSA9IG5ldyBOb2RlKDYsIG4yLCBuMyk7CgoJCVN5c3RlbS5vdXQucHJpbnRsbihnZXRTdW0objEpKTsKCX0KCglwdWJsaWMgc3RhdGljIGludCBnZXRTdW0oTm9kZSBoZWFkKSB7CgkJTGlzdDxTdHJpbmc+IHBhdGhzID0gZ2V0QWxsUGF0aHMoaGVhZCk7CgkJCgkJaW50IHRvdGFsID0gMDsKCQlmb3IoU3RyaW5nIHBhdGggOiBwYXRocykgewoJCQl0b3RhbCArPSBJbnRlZ2VyLnZhbHVlT2YocGF0aCk7CgkJfQoJCXJldHVybiB0b3RhbDsKCX0KCglwcml2YXRlIHN0YXRpYyBMaXN0PFN0cmluZz4gZ2V0QWxsUGF0aHMoTm9kZSBoZWFkKSB7CgkJaWYgKGhlYWQgPT0gbnVsbCkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJCUxpc3Q8U3RyaW5nPiBsZWZ0ID0gZ2V0QWxsUGF0aHMoaGVhZC5nZXRMZWZ0KCkpOwoJCUxpc3Q8U3RyaW5nPiByaWdodCA9IGdldEFsbFBhdGhzKGhlYWQuZ2V0UmlnaHQoKSk7CgoJCUxpc3Q8U3RyaW5nPiByZXN1bHRzID0gbmV3IEFycmF5TGlzdDw+KCk7CgkJaWYgKGxlZnQgPT0gbnVsbCAmJiByaWdodCA9PSBudWxsKSB7CgkJCXJlc3VsdHMuYWRkKFN0cmluZy52YWx1ZU9mKGhlYWQuZ2V0RGF0YSgpKSk7CgkJfSAKCQlpZiAocmlnaHQgIT0gbnVsbCkgewoJCQlmb3IgKFN0cmluZyBwYXRoIDogcmlnaHQpIHsKCQkJCXJlc3VsdHMuYWRkKFN0cmluZy52YWx1ZU9mKGhlYWQuZ2V0RGF0YSgpKSArIHBhdGgpOwoJCQl9CgkJfQoJCWlmIChsZWZ0ICE9IG51bGwpIHsKCQkJZm9yIChTdHJpbmcgcGF0aCA6IGxlZnQpIHsKCQkJCXJlc3VsdHMuYWRkKFN0cmluZy52YWx1ZU9mKGhlYWQuZ2V0RGF0YSgpKSArIHBhdGgpOwoJCQl9CgkJfQoJCXJldHVybiByZXN1bHRzOwoJfQoKCXByaXZhdGUgc3RhdGljIGNsYXNzIE5vZGUgewoJCXByaXZhdGUgZmluYWwgaW50IGRhdGE7CgkJcHJpdmF0ZSBmaW5hbCBOb2RlIGxlZnQ7CgkJcHJpdmF0ZSBmaW5hbCBOb2RlIHJpZ2h0OwoKCQlwdWJsaWMgTm9kZShpbnQgZGF0YSwgTm9kZSBsZWZ0LCBOb2RlIHJpZ2h0KSB7CgkJCXRoaXMuZGF0YSA9IGRhdGE7CgkJCXRoaXMubGVmdCA9IGxlZnQ7CgkJCXRoaXMucmlnaHQgPSByaWdodDsKCQl9CgoJCXB1YmxpYyBpbnQgZ2V0RGF0YSgpIHsKCQkJcmV0dXJuIHRoaXMuZGF0YTsKCQl9CgoJCXB1YmxpYyBOb2RlIGdldExlZnQoKSB7CgkJCXJldHVybiB0aGlzLmxlZnQ7CgkJfQoKCQlwdWJsaWMgTm9kZSBnZXRSaWdodCgpIHsKCQkJcmV0dXJuIHRoaXMucmlnaHQ7CgkJfQoJfQp9