目录
题目
思路
Code
题目
题目内容
给定一棵完全二叉树的层序遍历序列,用逗号分隔的节点值字符串表示,以及两个目标节点值 frm 和 to,求这两个节点之间的最小跳数,也就是最短路径经过的边数。
完全二叉树按数组下标表示,根节点索引为 0,索引为 i 的节点父节点索引为 (i-1)//2,左子节点索引为 2*i+1,右子节点索引为 2*i+2。
如果目标节点不存在,返回 -1。如果 frm 和 to 相同且节点存在,返回 0。树的节点不重名,节点数量范围公开页面仅能确认到 1 到 10^6。
输入描述
第一行输入字符串形式的层序遍历序列,节点值用逗号分隔,例如 1,2,3,4,5,6,7。
第二行输入起始节点值 frm。
第三行输入目标节点值 to。
输出描述
输出一个整数,表示从 frm 到 to 的最小跳数。如果任一节点不存在,输出 -1。如果 frm 等于 to 且节点存在,输出 0。
样例 1
输入
1,2,3
2
3
输出
2
说明
从节点 2 到节点 3,需要经过 2 到 1 再到 3,共 2 跳。
样例 2
输入
1,2,3,4,5,6,7
4
5
输出
2
说明
节点