Reverse Engineering Using Chrome
rudk.ws
rudk.ws
There's also many so-called 'structured' diff programs around.
In fact, if trees couldn't be diffed things like React would have serious speed concerns, or more realistically wouldn't even exist in the first place.
Edit: Just to clarity, I'm also not saying O(n^3) isn't slow compared to React's O(n), just that it's potentially a lot faster than NP.