{"version":3,"sources":["../../../src/utils/ListNode/index.ts"],"names":["ListNode","_ListNode","val","next","nums","lastNode","num","list","compareFn","x","ListNode_default"],"mappings":"AAAA,IAAMA,EAAN,MAAMC,CAAS,CACX,IACA,KAEA,YAAYC,EAAaC,EAAwB,CAC7C,KAAK,IAAMD,EACX,KAAK,KAAOC,GAAc,IAC9B,CAEA,aAAwB,CACpB,OAAO,KAAK,KAAO,KAAK,KAAK,YAAY,EAAI,IACjD,CAEA,QAAQC,EAAgB,CACpB,IAAIC,EAAW,KAAK,YAAY,EAEhC,QAAWC,KAAOF,EACdC,EAAS,KAAO,IAAIJ,EAASK,CAAG,EAChCD,EAAWA,EAAS,KAGxB,OAAO,IACX,CAEA,OAAO,KAAKE,EAAgB,CACxB,GAAIA,EAAK,SAAW,EAAG,MAAM,IAAI,MAAM,sBAAsB,EAE7D,OAAO,IAAIN,EAASM,EAAK,CAAC,CAAE,EAAE,KAAK,GAAGA,EAAK,MAAM,CAAC,CAAC,CACvD,CAEA,SAAoB,CAChB,OAAK,KAAK,KACH,CAAC,KAAK,IAAK,GAAG,KAAK,KAAK,QAAQ,CAAC,EADjB,CAAC,KAAK,GAAG,CAEpC,CAEA,KAAKC,EAA8C,CAC/C,OAASC,IACL,KAAK,IAAMA,EAAE,IACb,KAAK,KAAOA,EAAE,KACPA,IACRR,EAAS,KAAK,KAAK,QAAQ,EAAE,KAAKO,CAAS,CAAC,CAAC,CACpD,CACJ,EAEOE,EAAQV","sourcesContent":["class ListNode {\n    val: number;\n    next: ListNode | null;\n\n    constructor(val: number, next?: ListNode | null) {\n        this.val = val;\n        this.next = next ? next : null;\n    }\n\n    getLastNode(): ListNode {\n        return this.next ? this.next.getLastNode() : this;\n    }\n\n    push(...nums: number[]) {\n        let lastNode = this.getLastNode();\n\n        for (const num of nums) {\n            lastNode.next = new ListNode(num);\n            lastNode = lastNode.next;\n        }\n\n        return this;\n    }\n\n    static from(list: number[]) {\n        if (list.length === 0) throw new Error('Recieved empty array');\n\n        return new ListNode(list[0]!).push(...list.slice(1));\n    }\n\n    toArray(): number[] {\n        if (!this.next) return [this.val];\n        return [this.val, ...this.next.toArray()];\n    }\n\n    sort(compareFn?: (a: number, b: number) => number) {\n        return ((x: ListNode) => {\n            this.val = x.val;\n            this.next = x.next;\n            return x;\n        })(ListNode.from(this.toArray().sort(compareFn)));\n    }\n}\n\nexport default ListNode;\n"]}