这类题目相对简单,实际上是反序列化二叉树
思路步骤
迭代已经序列化的m*3数组
在迭代的过程中需要做的事情
1.Map存起来所有的节点对应值对应的物理节点
2.用Set将保存着一个父子节点关系的子节点存起来,这样做的目的是知道哪些节点有父节点,方便找出二叉树的根(输入值已经保证了其是一颗合法完整的二叉树)
3.再次迭代序列化数组,用Set找出唯一一个根节点,hash索引找目标值时间复杂度是O(1)
时间复杂度O(≈len(descriptions)*2)
空间复杂度Space(≈sizeof(descriptions)*2)
找根节点可以不用map,通过任意父节点自底向上找根节点也可以节省空间复杂度
网友评论