数据结构
Emeraki
不知名斗地主选手
展开
-
二叉树中序遍历之Morris算法
Morris中序遍历Morris 遍历算法是另一种遍历二叉树的方法,它能将非递归的中序遍历空间复杂度降为 O(1)缺点是改变了整个树的结构,强行把一棵二叉树改成一段链表结构。我们将黄色区域部分挂到节点5的右子树上,接着再把2和5这两个节点挂到4节点的右边。这样整棵树基本上就变改成了一个链表了,之后再不断往右遍历。class Solution {public List<Integer> inorderTraversal(TreeNode root){ List&原创 2022-02-21 16:05:46 · 500 阅读 · 0 评论 -
链表的Floyd判环算法、环起始节点,环长
1,判环如上图,链表中进入环前的长度为m,环的长度为n,假设有两个指针,一个快一个慢,初始时都在head节点上。k为第一次相遇时所在的节点距离进入环的节点的距离(在上图中表示为5节点到3节点的距离)。ListNode fast = head;ListNode slow = head;slow指针每次走一步。fast指针每次走两步。fast = fast.next.next;slow = slow.next;两个指针同时从头结点开始出发,如果两个指针走了若干步之后相遇了,则表示此链表有环。原创 2021-09-09 10:27:23 · 191 阅读 · 0 评论