Java面试--面试中常考的循环问题

面试中常考的循环问题

一、循环控制

循环不变式(loop invariant)

循环书写方法

1.定义循环不变式,并在循环体每次结束后保持循环不变式

2.先一般、后特殊

3.每次 必须  向前推进循环不变式中涉及的变量值

4.每次推进的规模必须为 1

 

例 1.链表反转

步骤:

1.定义循环不变式

【在链表中间"切一刀",循环进行到一半、切在 3 和 4 之间,循环了3次,已经将1、2、3这几个节点处理完毕了,4、5还没有动,这就是循环,前几个节点处理完毕后,形态如下图所示】

2.newHead 指向反转成功的链表、currentHead 指向还没有反转的链表 

3.将 newHead 和 currentHead 向前推进 1 ;

4. newHead 必须指向已经反转完成的链表的头,但什么都没有做,已经反转完成链表的头是 N

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值