This should be just &mut self, not using 'a. When you plug in 'a on self here, it requires that the borrow of self (just to call the method add_node and return again), needs to be just as long as the borrow of the Node reference that is passed in which is not correct.
With that said, further progress with this data structure will be tricky, since it's self referencing using mutable references, which places very strict requirements on the references that are used -- in fact every node you add to master will need to come from the same let binding.
In short, since mutable references represent read-writable data, they need exact type equality. The construction of the recursive data structure then implies that every Node<'a> needs to contain a mut reference with exactly the same lifetime, or scope, which is as detailed as the statement level in Rust.