博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
这道题目是链表倒转的重要总结
阅读量:7087 次
发布时间:2019-06-28

本文共 1191 字,大约阅读时间需要 3 分钟。

 

解答:

 

关于链表倒转,开始我都是想加一个dummy node,但是后来发现,也不是完全必要。

 

看上面的解法,就处理的非常简洁,用三个指针,

a->b->c

 

head = a;

cur = null;

tmp = head->next;

head->next = cur;

cur = head;

head = tmp;

这时候,就变成了 a->null, b->c,并且cur指向a,head指向b,

然后一直走到 tmp == null的时候,就不需要把head变成tmp了,直接返回head就可以了。

或者,最后head是null的时候,把cur返回就可以了,因为cur指向的是上一次的head,这也是原解法中的方式。

 

public ListNode reverseKGroup(ListNode head, int k) {    ListNode curr = head;    int count = 0;    while (curr != null && count != k) { // find the k+1 node        curr = curr.next;        count++;    }    if (count == k) { // if k+1 node is found        curr = reverseKGroup(curr, k); // reverse list with k+1 node as head        // head - head-pointer to direct part,         // curr - head-pointer to reversed part;        while (count-- > 0) { // reverse current k-group:             ListNode tmp = head.next; // tmp - next head in direct part            head.next = curr; // preappending "direct" head to the reversed list             curr = head; // move head of reversed part to a new node            head = tmp; // move "direct" head to the next node in direct part        }        head = curr;    }    return head;}

 

转载于:https://www.cnblogs.com/charlesblc/p/6441430.html

你可能感兴趣的文章
创业者谈360路由失败:懒惰和自以为是的产品设计
查看>>
开源网络取证工具Xplico
查看>>
来瞧瞧金砖大会的“护花使者”吧!
查看>>
这10 个工具,让你效率提升
查看>>
BlackHat:大多数网页模板漏洞可被利用轻易突破沙盒
查看>>
IPFS:替代HTTP的分布式网络协议
查看>>
NAS存储采购难?“三问六则”帮你搞定
查看>>
11款主流的可视化数据分析工具评测报告
查看>>
在Azure中部署Kubernetes容器集群
查看>>
数字化灾难!2016年九大服务停机事故总结
查看>>
微信Mars:客户端跨平台组件的开发经验
查看>>
滨湖区胡埭建智能交通缓解交通压力
查看>>
TensorFlow教程之API DOC 6.3.2. CLIENT
查看>>
运营商有望在云计算市场后发制胜
查看>>
《深度学习:Java语言实现》一一第2章 机器学习算法——为深度学习做准备
查看>>
联盟成为大数据生态建设重要模式
查看>>
坚持做创业护卫队的770天
查看>>
《ANSYS Workbench 14有限元分析自学手册》——导读
查看>>
jsp验证码
查看>>
OC之构造方法
查看>>