
C/C++
文章平均质量分 77
gogozhang12
这个作者很懒,什么都没留下…
展开
-
链表总结1
//1.给定一个链表的头指针,在一次遍历中,找出这个链表中的中间节点并返回。 //基本思想: 设立两个指针,比如*p和*q。p每次移动两个位置,而q每次移动一个位置,当p到达最后一个节点时,q就是中间节点了。 //2.查找链表中倒数第k个节点 //基本思想: 两个指针,保持距离k //3.怎么判断链表中是否有环? //基本思想: 与5相似,若p能追上q,则有环,否则无环。 ///*转载 2014-02-12 13:12:19 · 446 阅读 · 0 评论 -
单链表的逆序
单链表的逆序有以下几种方法: 第一种方法:堆栈法,将原链表元素依序push如堆栈中,然后再pop入新链表中,时空复杂度依然过大,但是这种方法时空复杂度较高; 第二种方法:运用数组。即先遍历单链表取出元素顺序放到数组中,然后从数组中逆序取出元素,再次遍历单链表时放入。这种方法也需要额外建立数组,而且需要遍历两次。 第三种方法:直接逆序。仅遍历一遍 第四种方法:递归。 下面是代码 #i原创 2014-02-12 13:01:52 · 749 阅读 · 0 评论