Flatten Binary Tree to Linked List

treeArray
[1, 2, 5, 3, 4, null, 6]
1def flatten(root):
2  current = root
3
4  while current:
5    if current.left:
6      # Find rightmost node in left subtree
7      predecessor = current.left
8      while predecessor.right:
9        predecessor = predecessor.right
10
11      # Connect predecessor's right to current's right
12      predecessor.right = current.right
13
14      # Move left subtree to right
15      current.right = current.left
16      current.left = None
17
18    # Move to next node
19    current = current.right
0 / 15
R125346currentpredecessor