diff --git a/src/Traversal.java b/src/Traversal.java index 8da0f79..b877d72 100644 --- a/src/Traversal.java +++ b/src/Traversal.java @@ -1,5 +1,48 @@ public class Traversal { public static void main(String[] args) { + TreeNode root = new TreeNode(10); + + root.left = new TreeNode(9); + root.right = new TreeNode(15); + root.left.left = new TreeNode(5); + root.left.right = new TreeNode(2); + + root.right.left = new TreeNode(-3); + root.right.right = new TreeNode(5); + + root.right.right.right = new TreeNode(22); + + int result = sum(root); + System.out.println(result); + result = oddSum(root); + System.out.println(result); + } + + public static void preorder (TreeNode current) { + if (current == null) return; + System.out.println(current.data); + preorder(current.left); + preorder(current.right); + + } + + public static int sum (TreeNode node) { + if (node == null) return 0; + int total = node.data; + total += sum(node.left); + total += sum(node.right); + return total; + } + + public static int oddSum (TreeNode node) { + if (node == null) return 0; + int total = 0; + if (node.data % 2 != 0) { + total += node.data; + } + total += oddSum(node.left); + total += oddSum(node.right); + return total; } } diff --git a/src/TreeNode.java b/src/TreeNode.java index acd9639..e5c6e65 100644 --- a/src/TreeNode.java +++ b/src/TreeNode.java @@ -1,4 +1,9 @@ public class TreeNode { + public int data; + public TreeNode left; + public TreeNode right; - + public TreeNode (int data) { + this.data = data; + } } \ No newline at end of file