王道上幾道鍊錶的小題(上)

2021-09-25 03:40:42 字數 1862 閱讀 5860

void del_x(linklist &l, elemtype x)

if(l->data == x)else

}

// 普通方式

void del_x(linklist &l, elemtype x)else

}}// 尾插法,值不為x的結點尾插建表,值為x的結點釋放

void del_x(linklist &l, elemtype x)else

}r->next = null;

}

// 遞迴輸出後面的乙個結點

void r_print(linklist l)

print(l->data);

}

// 遍歷鍊錶,使用乙個指標記錄最小值的結點,遍歷結束後,刪除該結點

linklist del_min(linklist &l)

pre = p;

p = p->next;

}minpre->next = minp->next;// 刪除最小值結點

free(minp);

return l;

}

linklist reverse(linklist l)

return l;

}linklist reverse(linklist l)

l->next = p;// 處理最後乙個結點

return l;

}

void sort(linklist &l)

// 交換無序序列第乙個元素與插入位置元素的位置

p->next = pre->next;

pre->next = p;

p = r;

}}

void del_range(linklist &l, int x, int y)else

}}

linklist search(linklist l1, linklist l2)else

while(dist--)

while(longlist != null)else

}return null;

}

void del_min(linklist &head)

p = p->next;

}print(pre->next->data);

s = pre->next;

pre->next = s->next;

free(s);

}free(head);

}

linklist discreate(linklist &a)else

p = p->next;

}ra->next = null;

rb->next = null;

return b;

}

linklist discreate(linklist &a)

ra->next = null;

return b;

}

在乙個遞增有序得線性表中,有數值相同的元素存在。若儲存方式為單鏈表,設計演算法去掉數值相同的元素,使表中不再有重複的元素。例如 (7, 10, 10, 21, 30, 42, 42, 42, 51, 70)將變作(7, 10, 21, 30, 42, 51, 70)

void del_same(linklist &l)

while(p->next != null)else

}}

LeetCode鍊錶的幾道基礎題

an highlighted block definition for singly linked list.struct listnode class solution else overload 0 pcurrent next newlistnode sum 將當前的值賦給第一位 也就是個位數 ...

關於鍊錶的幾道大廠面試題

獲取鍊錶中的有效節點個數 這是十分簡單的一道面試題,只需要將鍊錶除了頭節點遍歷即可,實現如下 獲取整個鍊錶的有效節點個數 public static intlength heronode headnode int length 0 heronode curheronode headnode.next...

王道課後習題2 3 22 兩個鍊錶的共同字尾

題目描述 帶頭結點的單鏈表,尋找兩個鍊錶的共同字尾的起始位置。演算法思想 雙指標法 核心 雙指標法 int length lnode l 注意 這裡之前寫成了int length lnode l 用的引用。這樣的話,head1和head2最後都會變成null。難怪執行不對。return k lnod...