Fix invalidateUpdateList not to use both cycle and recursion traverse

This is only fix of trivial: Last significant change of updateLogicalState in 05c6986492166c549d928cc2b23dc4c5de289b54 has used both cycle and recursion inside `Node.invalidateUpdateList()`. So it has had quadratic complexity O(depth^2).