Add TypeScript code to docs (Chapter of Linked_list)
This commit is contained in:
		| @@ -63,7 +63,15 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 链表结点结构体 */ | ||||||
|  |     class ListNode { | ||||||
|  |         val: number; | ||||||
|  |         next: ListNode | null; | ||||||
|  |         constructor(val?: number, next?: ListNode | null) { | ||||||
|  |             this.val = val === undefined ? 0 : val;        // 结点值 | ||||||
|  |             this.next = next === undefined ? null : next;  // 指向下一结点的引用 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
| @@ -152,7 +160,18 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 初始化链表 1 -> 3 -> 2 -> 5 -> 4 */ | ||||||
|  |     // 初始化各个结点 | ||||||
|  |     const n0 = new ListNode(1); | ||||||
|  |     const n1 = new ListNode(3); | ||||||
|  |     const n2 = new ListNode(2); | ||||||
|  |     const n3 = new ListNode(5); | ||||||
|  |     const n4 = new ListNode(4); | ||||||
|  |     // 构建引用指向 | ||||||
|  |     n0.next = n1; | ||||||
|  |     n1.next = n2; | ||||||
|  |     n2.next = n3; | ||||||
|  |     n3.next = n4; | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
| @@ -251,7 +270,22 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 在链表的结点 n0 之后插入结点 P */ | ||||||
|  |     function insert(n0: ListNode, P: ListNode): void { | ||||||
|  |         const n1 = n0.next; | ||||||
|  |         n0.next = P; | ||||||
|  |         P.next = n1; | ||||||
|  |     } | ||||||
|  |     /* 删除链表的结点 n0 之后的首个结点 */ | ||||||
|  |     function remove(n0: ListNode): void { | ||||||
|  |         if (!n0.next) { | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         // n0 -> P -> n1 | ||||||
|  |         const P = n0.next; | ||||||
|  |         const n1 = P.next; | ||||||
|  |         n0.next = n1; | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
| @@ -325,7 +359,16 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 访问链表中索引为 index 的结点 */ | ||||||
|  |     function access(head: ListNode | null, index: number): ListNode | null { | ||||||
|  |         for (let i = 0; i < index; i++) { | ||||||
|  |             if (!head) { | ||||||
|  |                 return null; | ||||||
|  |             } | ||||||
|  |             head = head.next; | ||||||
|  |         } | ||||||
|  |         return head; | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
| @@ -407,7 +450,18 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 在链表中查找值为 target 的首个结点 */ | ||||||
|  |     function find(head: ListNode | null, target: number): number { | ||||||
|  |         let index = 0; | ||||||
|  |         while (head !== null) { | ||||||
|  |             if (head.val === target) { | ||||||
|  |                 return index; | ||||||
|  |             } | ||||||
|  |             head = head.next; | ||||||
|  |             index += 1; | ||||||
|  |         } | ||||||
|  |         return -1; | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
| @@ -480,7 +534,17 @@ comments: true | |||||||
| === "TypeScript" | === "TypeScript" | ||||||
|  |  | ||||||
|     ```typescript title="" |     ```typescript title="" | ||||||
|  |     /* 双向链表结点类 */ | ||||||
|  |     class ListNode { | ||||||
|  |         val: number; | ||||||
|  |         next: ListNode | null; | ||||||
|  |         prev: ListNode | null; | ||||||
|  |         constructor(val?: number, next?: ListNode | null) { | ||||||
|  |             this.val = val  ===  undefined ? 0 : val;        // 结点值 | ||||||
|  |             this.next = next  ===  undefined ? null : next;  // 指向后继结点的引用 | ||||||
|  |             this.prev = prev  ===  undefined ? null : prev;  // 指向前驱结点的引用 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|     ``` |     ``` | ||||||
|  |  | ||||||
| === "C" | === "C" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user