คำถามติดแท็ก singly-linked-list

30
จะย้อนกลับรายการที่เชื่อมโยงเดี่ยวโดยใช้ตัวชี้สองตัวได้อย่างไร
ฉันสงสัยว่ามีตรรกะบางอย่างในการย้อนกลับรายการที่เชื่อมโยงโดยใช้ตัวชี้เพียงสองตัว ต่อไปนี้จะใช้ในการกลับรายการที่เชื่อมโยงเดียวโดยใช้ตัวชี้สามคือp, q, r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q = NULL, *r; while (p != NULL) { r = q; q = p; p = p->link; q->link = r; } first = q; } มีทางเลือกอื่นในการย้อนกลับรายการที่เชื่อมโยงหรือไม่? อะไรคือตรรกะที่ดีที่สุดในการย้อนกลับรายการที่เชื่อมโยงเพียงอย่างเดียวในแง่ของความซับซ้อนของเวลา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.