In the Deutsch-Jozsa algorithm, the Hadamard gates create a superposition of all possible input states. The oracle gate then applies the function f to the input qubits, effectively encoding the function into the quantum state. The second set of Hadamard gates then "uncompute" the superposition, leaving the input qubits in a state that can be measured to determine the nature of the function f.
For a constant function, the output of the oracle gate will be the same for both input bit strings, resulting in a final state that is either |00⟩ or |11⟩. When the input qubits are measured, the result will always be the same, indicating that the function is constant.
For a balanced function, the output of the oracle gate will be different for the two input bit strings, resulting in a final state that is a superposition of all possible output states. When the input qubits are measured, the result will be one of the possible 2-bit strings other than |00⟩ or |11⟩, indicating that the function is balanced.