主页 > 抒情散文 > 正文

白话文之反转链表

2024-11-28 09:20:13 来源:天下文学 点击:3
啥东西都应该有套路,玩游戏有玩游戏的套路, 升级,下副本,拿装备,下更高级副本,拿更高级装备,如此循环编程也有编程的套路, 如果你还感觉迷茫或者还在考虑学前端还是后端或者 选什么语言?一句话 前端&后端&任何语言 这都叫编程 都叫程序员, 直接 升级下副本吧,至少先玩上一个 你才能知道 这游戏怎么样,然后在决定要在这个游戏中 怎么玩~链表是啥自行百度吧大致结构 就是Node{//有一个数据字段 data;//还有一个 指向下一节点的 指针Node *next ;}创建链表就不说了吧.... 循环就好了那么反转链表是啥?当然就是将链表反过来咯1->2->3->4->5反转:5->4->3->2->1怎么操作呢?说套路之前先说一条定理:看书记不住的原因 只有一点! 那是因为你没有理解其意义有的人看两遍就能理解, 有的人 套用一下就能理解, 而有的人 需要大量的重复的写的过程中突然bing!的一下就理解了反转单项链表那反转单项链表有啥套路呢?新建一个链表 = 原链表用一个变量保存链表的next 节点(保留 原链表的后续节点 理解为count - 当前)对新链表的next节点进行重新赋值用另一个变量保存当前节点移动当前链表位置 重复 1 2 3 4 操作class Node {AnyObject *data;Node *next ;}// 不要在意用什么语言 大意能看懂就好func reverseLink(link:Node) -> Node { // 1. var tempHead = link var next:Node = nil var pre:Node = nil while (tempHead) { // 2. next = tempHead.next // 3. 这里需要区分 原链表的第一个元素反转后 next 节点应该为 null tempHead.next = pre // 4. pre = tempHead // 5. tempHead = next // 6. 执行while循环 直到 next = nil } // 循环结束当前tempHead = nil, 所以 return的是 tempHead=nil操作之前的那一个节点, 第四步 return pre}反转双向链表链表结构中加了一个last 节点class Node {AnyObject *data;Node *next;Node *last;}// 不要在意用什么语言 大意能看懂就好func reverseLink(link:Node) -> Node { // 1. var tempHead = link var next:Node = nil var pre:Node = nil while (tempHead) { // 2. next = tempHead.next // 3. 这里需要区分 原链表的第一个元素反转后 next 节点应该为 null tempHead.next = pre // 头节点的设置 tempHead.last = next // 4. pre = tempHead // 5. tempHead = next // 6. 执行while循环 直到 next = nil } // 循环结束当前tempHead = nil, 所以 return的是 tempHead=nil操作之前的那一个节点, 第四步 return pre}

杭州癫痫病医院费用多少

杭州市中西结合治癫痫病的医院

杭州哪些医院看儿童癫痫病

浙江小儿癫痫好的医院

浙江癫痫专业医院哪家好