一. 找链表的中间节点(两种方法)
1、通过链表长度(简单,不推荐)
2、快慢指针(推荐)
分奇偶数个节点 当奇数:pf走到NULL 或 偶数:pf走到尾节点 时,ps刚好在中间。
二. 找倒数第 k 个节点(把尾节点当倒数第一个)
1、同样可以用长度 len-k(不推荐)
2、双指针(从头节点开始;如果从首节点开始的话,最后一个数找不到)
4. 判断链表是否有环(想象跑步套圈)
如何验证---需要建一个环:利用 "找倒数第 k 个节点" :这里找两个再把他们连起来形成环
node_t *p1 = find_end_k(phead,1);
node_t *p2 = find_end_k(phead,4);
p1->pnext = p2;