MST

星途 面试题库

面试题:TypeScript泛型函数在链表数据结构模拟中的应用

假设我们用对象模拟简单链表节点结构,节点包含value和next属性(next指向下一个节点或null)。编写一个TypeScript泛型函数,接收链表头节点,对链表中的每个节点值进行特定操作(操作通过回调函数传递),并返回操作后的新链表头节点。需考虑泛型类型在节点定义及函数参数、返回值中的应用,保证类型安全。
44.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
// 定义链表节点类型
class ListNode<T> {
    value: T;
    next: ListNode<T> | null;
    constructor(value: T, next: ListNode<T> | null = null) {
        this.value = value;
        this.next = next;
    }
}

// 定义操作链表的泛型函数
function transformList<T>(head: ListNode<T> | null, callback: (value: T) => T): ListNode<T> | null {
    if (!head) {
        return null;
    }
    const newHead = new ListNode(callback(head.value));
    let current = newHead;
    let originalCurrent = head.next;
    while (originalCurrent) {
        current.next = new ListNode(callback(originalCurrent.value));
        originalCurrent = originalCurrent.next;
        current = current.next;
    }
    return newHead;
}