Как я понимаю, вам нужно объяснение этой строки.
root = (root.left, root.right)[p.val > root.val]
Он создает кортеж с двумя элементами: root .left и root .right, они имеют индексы 0 и 1. p. val> root .val - логическое выражение. Если false (для python это 0), он выбирает root .left (например, первый элемент в кортеже). если это правда (для python это 1), выбирается root .right (например, второй элемент в кортеже).
Это потому, что
>>> False == 0
True
>>> True == 1
True