CAN bus - Priority/collision
First let's clarify something.  CAN bus addressing works on message IDs.  CAN bus itself doesn't have node IDs.  (One could create a scheme for where some kind of node ID is a part of the message ID, or a part of the data.  But such scheme isn't required by the CAN bus spec.)


  But how do CAN bus avoid collision on the bus? Lets say node 3 is done talking, how do they decide who is next? If node 1 and 4 decides at the same time to transmit data to the bus, it would result that data that are transmitted to the bus is corrupt, since two nodes are transmitting at the same time?


The arbitration in the CAN bus is based on message IDs.  A message with the smallest ID wins the arbitration.  CAN bus defines 0 as "dominant" and 1 as "recessive". The logic levels for 0 are actively driven by transistors.  The logic levels for 1 are passively pulled by resistors.  

When a node wants to transmit a 1, it releases the lines an allows it to be pulled by resistors.  The transmitting node also monitors the line to see if it actually gets pulled to 1.  If it doesn't get pulled to 1, that means that some other node had driven the lines to 0.  This contested 0 isn't a collision or an undefined condition.  It's a bonafide bit.  The node which wanted to transmit a 1 knows that it had lost the arbitration, and it stops transmitting the frame (until the bus is free).


  If node A is transmitting binary 00100110 and node C is transmitting 11011001 at the same time, it would result that both CAN-H and CAN-L is high at the same time?


Let's look at the very first bit in this example.  Node C will try to transmit 1.  But it will be be unable to transmit 1, because node A is transmitting 0 at the same time.  0 is stronger than 1.  Node C will know that somebody else is transmitting 0, and node C will stop transmitting until the bus is free.