递归
list update