![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
绿头龙
don't think,feel it
展开
-
链表是否有环找出入环节点位置
利用快慢指针方法判断链表是否存在环,并记录两指针相遇位置。 快慢指针方法:将两指针分别放在链表头(X)和相遇位置(Z),并改为相同速度推进,则两指针在环开始位置相遇(Y),如图所示。 证明过程:X,Y,Z分别为链表起始位置,环开始位置和两指针相遇位置,由快指针速度的慢指针速度的2倍。 快指针与慢指针均从X出发,在Z相遇。此时,慢指针行使距离为a+b,快指针为a+b+n(b+c)。 所以2*(a+b)=a+b+n*(b+c),推出 a=(n-1)b+nc=(n-1)(b+c)+c; 得到,将此时两指针分别放原创 2020-11-24 22:07:11 · 242 阅读 · 0 评论 -
二叉树的创建和遍历
声明TreeNode节点类 class TreeNode{ public int val; public TreeNode left; public TreeNode right; public TreeNode(int val){ this.val = val; } } 将要构建的二叉树形态。 1 // * / \ // * 2 4 //原创 2020-11-24 11:45:43 · 146 阅读 · 1 评论