/* Test of recursion-handling. */ class recur { int next; recur tail; /* no side-effect */ static int length(recur r) { if (r == null) return 0; else return 1 + length(r.tail); } /* Modifies both args. */ static void mod1(recur left, recur right) { mod2(right, left); } /* Modifies both args. */ static void mod2(recur left, recur right) { mod1(left, right); // change to mod1(right, left); for more fun right.next = 5; } public static void main(String[] args) { mod1(null, null); int z = length(null); } }