Actually, that's absolutely the right idea.

Let f(n) = the number of odd numbers in your list when you have n numbers.

Have f(50) = 25.

Let g(n) = 1 if f(n) is odd, and g(n) = 0 if f(n) is even.

Have g(50) = 1.

Now, when there are k numbers:

Case: you pick two odds, remove them, subtract them, take absolute value, then reinsert the (even!) result:

Then f(k-1) = f(k) - 2 + 0 = f(k) - 2, so g(k-1) = g(k).

Case: you pick two evens, remove them, subtract them, take absolute value, then reinsert the (even!) result:

Then f(k-1) = f(k) - 0 + 0 = f(k-1), so g(k-1) = g(k).

Case: you pick an even and an odd, remove them, subtract them, take absolute value, then reinsert the (odd!) result:

Then f(k-1) = f(k) - 1 + 1 = f(k-1), so g(k-1) = g(k).

Now matter which two values you choose, g(k-1) = g(k).

(In math lingo, you might phrase this as "The parity of the number of odds on the list is invariant under this process.")

Thus g(1) = g(2) = g(3) = ... = g(49) = g(50) = 1.

Thus g(1) = 1.

Thus f(1) is odd.

Thus f(1), which the number of odd numbers in your list when you have only one number, is odd.

But on a list with only one number, that's only possible if that one number is odd, so that there's one (1 is odd) number that's odd on that list.

Thus, when your process terminates with 1 number remaining, that number must be odd.