This week's book giveaways are in the Jython/Python and Object-Oriented programming forums. We're giving away four copies each of Machine Learning for Business: Using Amazon SageMaker and Jupyter and Object Design Style Guide and have the authors on-line! See this thread and this one for details.
What you are doing is setting a new node (left or right), but I can't see where you are retaining the previous branch.
I would query a few things about the assignment. I don't think a char is suitable for determining a direction. All right, two of the potential values are in your method, but what about the other 63354 of them? Why are you using equals()? What sort of variable are you calling equals() on? When you work that out, I think you will see why you can't use equals(). If you have a restricted range of possible arguments, why are you using multiple ifs or if‑elses?
I am puzzled by a method which receives the parameter p. How are you going to find a tree node like that? At least that parameter makes the method easier to write.
Why is the term “child” so popular? I thought trees had branches and leaves.