Linked list operations for a competition
Rename Node.add to setNext, since its a setter method:

public void setNext(final Node node) {
    this.next = node;
}




Create a constructor with only the value parameter:

public Node(final int value) {
    this.value = value;
}


and call this in your main method instead of passing nulls:

final Node head_list1 = new Node(1);




Do not use public fields:

public int value;
public Node next;


Make them private and provide getters and setters.



The value field could be final:

public class Node {
    private final int value;
    ...
}


It should not change, so protect it with final.



Instead of the main method write self-checking unit tests. The posted main should be separated to two test.



The Node class shouldn't be responsible for printing. It should return a String instead of System.out.print() calls. Maybe another client wants to write it to a file or a socket, but System.out.print() made it impossible.



Declare only one variable per line.



    while (current != null) {
        System.out.print(current.value + "-&gt;");
        current = current.next;
    }
    if (current == null) {
        System.out.println("END.");
    }


The current == null condition seems always true, so it's unnecessary:

    while (current != null) {
        System.out.print(current.value + "-&gt;");
        current = current.next;
    }
    System.out.println("END.");




Check input:

public static Node twist(final Node head) {
    if (head == null) {
        throw new NullPointerException("head cannot be null");
    }
    ...
}




It's unnecessary to set default value for all variables to null:

Node newHead = null;


Furthermore, it could be final since it get its value before it will be used:

final Node newHead;




Read Effective Java, Second Edition, Item 45: Minimize the scope of local variables. (Google for "minimize the scope of local variables", it's on Google Books too.)

For example, tempNext should be declared inside the else branch:

else {
    final Node tempNext = current.next;
    current.next = prev;
    if (branchHead != null) {
        branchHead.next = current;
    }
    prev.next = tempNext;
    current = tempNext;
}




Use camelCase variable names: head_list1 -> headList1. (Effective Java, Second Edition, Item 56: Adhere to generally accepted naming conventions)