Easy to Follow Python Solution
def splitListToParts(self, root, k):\n        n = 0\n        curr = root\n        while curr != None:\n            n += 1\n            curr = curr.next\n       
    def splitListToParts(self, root, k):\n        n = 0\n        curr = root\n        while curr != None:\n            n += 1\n            curr = curr.next\n        \n        # determine part length and any leftover length\n        length = n / k\n        leftover_length = n % k\n        curr = root\n        parts = []\n        for i in xrange(k):\n            part = []\n            for j in xrange(length):\n                part.append(curr.val)\n                curr = curr.next\n            if leftover_length > 0:\n                part.append(curr.val)\n                curr = curr.next\n                leftover_length -= 1\n            parts.append(part)\n        return parts
[]