.. or you pass any node to a function that operates on the list. iterate up/down insert/delete etc.
point being you dont have to iterate from the start of the list.
point being you dont have to iterate from the start of the list.
Unless you're storing external pointers to every node (in which case you'll actually break even with the traditional implementation in terms of size), you'll still have significant savings. Passing an extra pointer to a function is pretty trivial in terms of size.