日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

链表类面试题

發(fā)布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表类面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、清空鏈表跟銷毀鏈表的區(qū)別
鏈表本身是一個數據結構,清空是把鏈表中的元素清空,但鏈表還存在,銷毀則是把鏈表這個結構的內存都釋放了。。
清空是鏈表沒節(jié)點,但是鏈表還在,可以繼續(xù)插入節(jié)點。銷毀就是鏈表沒了,整個鏈表的空間都被釋放了,不能進行任何操作了。
就像一個杯子,把杯子里的水倒掉叫清空,把杯子砸碎叫銷毀。。
清空鏈表與銷毀鏈表的代碼如下:

#include "stdlib.h" #include "stdio.h"struct student {int num; //學號 float score; //分數,其他信息可以繼續(xù)在下面增加字段struct student *next; //指向下一節(jié)點的指針 };//銷毀鏈表 int DestroyList(struct student *head) {struct student *p;if(head==NULL)return 0;while(head){p=head->next;free(head);head=p;}return 1; }//清空鏈表 int ClearList(struct student *head) {struct student *p,*q;if(head==NULL)return 0;p=head->next;while(p!=NULL){q=p->next;free(p);p=q;}head->next=NULL;return 1; } 2、鏈表相鄰元素翻轉,如a->b->c->d->e->f-g,翻轉后變?yōu)?#xff1a;b->a->d->c->f->e->g
思路:常見的三指針方法
typedef struct LinkNode {int data;struct LinkNode* next; }LinkNode , *LinkList;LinkList inverseList(LinkList head) {if(head == NULL || head->next == NULL)return head;LinkList pre = NULL;LinkList curr = head;LinkList next = NULL;while(curr && curr->next){if(pre)pre->next = curr->next;elsehead = curr->next;pre = curr;next = curr->next->next;curr->next->next = curr;curr->next = next;curr = next; }return head; }

總結

以上是生活随笔為你收集整理的链表类面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。