If you wish to get rid of the {}, then Mike's answer using DeleteCases works in this particular case, but will fail in general, because it will not remove {} that's nested deeper (such as {{}}). Using ReplaceAll or /. also fails in some cases because it removes it from inside any head. For example, if you have {a, {}, {{}}, f[b, {}]}, the expected behaviour is to not remove the {} from inside f. The proper way to do it, as outlined in this answer on Stack Overflow is:

@Rojo I like it! More than mine, actually. I was referring to /. {} -> Sequence[] in that statement though. I think yours is more reasonable in this corner case: expr = {{}, a, {{}}, f[{{{}}}]}. "Reasonable" of course depends on the intent — the objective in the linked question was to remove all {} if it is inside another list, which mine does, but I think I would intuitively expect the behaviour in yours. Feel free to edit it into my answer (or if you write a new one, I'll upvote it)
–
rm -rf♦Jul 28 '12 at 16:32

You would do better to use: Replace[list, {{} -> 0, {{_, x_}} :> x}, {1}] -- this way you only scan the list once. You should use :> for named patterns on the RHS. +1 nevertheless
–
Mr.Wizard♦Jul 28 '12 at 9:05

@Mr.Wizard, great point. And thank you for the vote.
–
kgulerJul 28 '12 at 9:15

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.