Use seperated TreeNode & ListNode