牛牛很喜欢玩二叉树。这天牛能送给了他一个以1为根结点的个结点的二叉树,他想对这个二叉树进行一些加工。 牛牛刚刚学会转圈圈,所以很喜欢旋转。现在他想对这颗二叉树进行m次旋转。 每次旋转牛牛会指定一个结点,并让以这个结点为根的子树中的所有结点的左右儿子互换。 多次操作之后,牛牛希望以中序遍历的方式输出操作完之后的二叉树。
示例1

输入

5,3,[4,3,0,0,0],[2,0,0,5,0],[3,1,5]

输出

[2,3,1,5,4]

说明

最开始1的左儿子为4,右儿子为2
2的左儿子为3.
4的右儿子为5.
第一次操作结点3,结点3没有儿子,所以没有发生变化
第二次操作结点1,结点1的左儿子变为2,右儿子变为4. 
结点4的左儿子变为5,右儿子变为不存在。结点
结点2的左儿子变为不存在,右儿子变成3
第三次操作结点5,结点5没有儿子,不发生变化。
最开始1的左儿子为2,右儿子为4
2的右儿子为3.
4的左儿子为5.
中序遍历结果为[2,3,1,5,4]

备注:
数据保证结点1为根节点第一个参数n代表树的结点个数第二个参数m代表需要进行的操作个数第三个参数l包含n个元素,代表每个结点的左儿子结点。如果为0则代表该点无左儿子第三个参数r包含n个元素,代表每个结点的右儿子结点。如果为0则代表该点无右儿子第四个参数k包含m个元素,代表m次操作的结点编号。
加载中...