• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






lizezheng

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2012年8月16日

如何判断单链表是否有环,如果有怎么找到进入环的节点
摘要: 转载自gaofen100博客园,感谢作者整理!How can one determine whether a singly linked list has a cycle?第一种方法是从单链表head开始,每遍历一个,就把那个node放在hashset里,走到下一个的时候,把该node放在hashset里查找,如果有相同的,就表示有环,如果走到单链表最后一个node,在hashset里都没有重复的node,就表示没有环。 这种方法需要O(n)的空间和时间。第二种方法是设置两个指针指向单链表的head, 然后开始遍历,第一个指针走一步,第二个指针走两步,如果没有环,它们会直接走到底,如果有环,这 阅读全文
posted @ 2012-08-16 20:31 lizezheng 阅读(1077) 评论(0) 推荐(0)
 
带参数的宏定义,利用宏参数创建字符串——#运算符
摘要: 看看以下两个宏定义:#define PSQR(x) printf("The square of x is %d.\n",(x)*(x))#define PSQR(x) printf("The square of "#x" is %d.\n",(x)*(x)) 我们的目标是希望使用宏的时候将宏体中的x替换为宏参数,但是第一个宏定义是不能完成这样的目标的,因为引号中的x会被看做是普通文本,不可替换;我们可以采用#运算符来实现这样的功能。PSQR(x)在两个不同的宏定义输出的结果如下:The square of x is 4.The squ 阅读全文
posted @ 2012-08-16 10:43 lizezheng 阅读(4755) 评论(0) 推荐(0)