两两交换链表节点
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
标签:set,cur,随想录,next,链表,节点,指针 From: https://www.cnblogs.com/Liu5419/p/17134511.html