how do nodes verify that a block has been solved and can be added to the blockchain when a miner solves a block it gets sent out to the network, when other nodes receive it, how do they verify that the block received was indeed solved and can be added to the blockchain.

So you don't know what the answer is but if you got the answer you know what the question was.
StephenM wrote a good answer to that:


  
  The difficulty (or nBits as it is called in the code) is shorthand for how difficult it is to solve the block. Essentially, it encodes a target value, and the hash of the block (when treated as a 256 bit integer) must be below that target value to be considered solved.