private void dfs(Node root) {
		if (root == null)
			return;
		if (root.left != null)
			dfs(root.left);
		if (root.right != null)
			dfs(root.right);
		if (root.right == null && root.left != null) {
			root.robValue = root.left.norobValue + root.val;
			root.norobValue = Math.max(root.left.robValue, root.left.norobValue);
		} else if (root.left == null && root.right != null) {
			root.robValue = root.right.norobValue + root.val;
			root.norobValue = Math.max(root.right.robValue, root.right.norobValue);
		} else if (root.left != null && root.right != null) {
			root.robValue = root.right.norobValue + root.val + root.left.norobValue;
			int max = Math.max(root.right.robValue + root.left.robValue, root.right.norobValue + root.left.norobValue);
			max = Math.max(max, root.right.robValue + root.left.norobValue);
			root.norobValue = Math.max(max, root.left.robValue + root.right.norobValue);
		} else {
			root.robValue = root.val;
			root.norobValue = 0;
		}
	}