In terms of speed of execution they are the same. The compiled/interpreted code is going to do a test if nodetype == 3. If yes it executes a return statement next. If no it executes the other return statement next. Both cases are going to execute a return statement next.
In terms of stack usage, they are the same. In both examples shown, it only drops into the recursive call if it cannot match nodetype == 3. It is possible to write the code poorly so that unnecessary recursive calls happen. But such is not the case in the examples shown. So memory usage they are the same.
If null is a possible value for nodetype they are still the same. The two examples will both drop into the recursive call whether nodetype == 2 or nodetype == null. You could rewrite the examples to also test for null and not drop into recursion on nulls. But that wasn't the question asked.
The only difference may be in readability. Which is more readable? Positive statements take one less mental step so (nodetype == 3) is a little less mental work than (nodetype != 3). But marginally so.