牛牛很喜欢玩二叉树。这天牛能送给了他一个以1为根结点的个结点的二叉树,他想对这个二叉树进行一些加工。
牛牛刚刚学会转圈圈,所以很喜欢旋转。现在他想对这颗二叉树进行m次旋转。
每次旋转牛牛会指定一个结点,并让以这个结点为根的子树中的所有结点的左右儿子互换。
多次操作之后,牛牛希望以中序遍历的方式输出操作完之后的二叉树。
牛牛很喜欢玩二叉树。这天牛能送给了他一个以1为根结点的个结点的二叉树,他想对这个二叉树进行一些加工。
牛牛刚刚学会转圈圈,所以很喜欢旋转。现在他想对这颗二叉树进行m次旋转。
每次旋转牛牛会指定一个结点,并让以这个结点为根的子树中的所有结点的左右儿子互换。
5,3,[4,3,0,0,0],[2,0,0,5,0],[3,1,5]
[2,3,1,5,4]
最开始1的左儿子为4,右儿子为22的左儿子为3.4的右儿子为5.第一次操作结点3,结点3没有儿子,所以没有发生变化第二次操作结点1,结点1的左儿子变为2,右儿子变为4.结点4的左儿子变为5,右儿子变为不存在。结点结点2的左儿子变为不存在,右儿子变成3第三次操作结点5,结点5没有儿子,不发生变化。最开始1的左儿子为2,右儿子为42的右儿子为3.4的左儿子为5.中序遍历结果为[2,3,1,5,4]
数据保证结点1为根节点第一个参数n代表树的结点个数第二个参数m代表需要进行的操作个数第三个参数l包含n个元素,代表每个结点的左儿子结点。如果为0则代表该点无左儿子第三个参数r包含n个元素,代表每个结点的右儿子结点。如果为0则代表该点无右儿子第四个参数k包含m个元素,代表m次操作的结点编号。
这道题你会答吗?花几分钟告诉大家答案吧!