crazy tree diff traversal