代码随想录打卡第4天 |两两交换链表中的节点,删除链表的倒数第N个节点,链表相交,环形链表II

两两交换链表节点

  1, 三指针  pre指向要交换的两点之前, cur指向一节点, temp指向下一节点 

  2, 交换完时 while(pre.next!=null&&pre.next.next!=null)

删除倒数节点

  1, 快慢指针, 快指针先走n步

  2, 终止条件 while(n.next!=null) 

链表相交(两种方法,set集合法 和 求出距离 偏移到同一起始index)

  set集合法 (利用集合不能添加重复元素的特性)

  1,if(!set.add(cur)) return cur;

  求出距离 偏移到同一起始index

 

环形链表II (两种方法 set集合和快慢指针法)

  set集合法 (利用集合不能添加重复元素的特性)

  1,if(!set.add(cur)) return cur;

  快慢指针法 

  1, 快指针一次性移动两格  满指针一格

  2, 两者相遇说明链表有环, tempA指针从head出发 tempB指针从相遇节点出发 两者相遇的点就是环的起始点

 

下面是链表的总结

  1,while(cur!=null) 此循环结束时 cur指向最后节点的next位(null)

  2, while(cur.next!=null) 此循环结束时 cur指向最后节点

  3, 推动指针前进 cur=cur.next

  4, 改变指针next指向 cur.next=temp  

 

posted @ 2023-02-19 12:13  绝云气负青天  阅读(15)  评论(0)    收藏  举报