现有一棵个节点构成的二叉树,请你将每一层的节点向右循环位移位。某层向右位移一位(即)的含义为: 1.若当前节点为左孩子节点,会变成当前节点的双亲节点的右孩子节点。 2.若当前节点为右儿子,会变成当前节点的双亲节点的右边相邻兄弟节点的左孩子节点。(如果当前节点的双亲节点已经是最右边的节点了,则会变成双亲节点同级的最左边的节点的左孩子节点) 3.该层的每一个节点同时进行一次位移。 4.是从最下面的层开始位移,位移完每一层之后,再向上,直到根节点,位移完毕。 如果从最后一层开始对该二叉树的每一层循环位移位。以下方二叉树为例,: 1 \ 2 3 \ 4 5 位移最后一层,5变成2的左孩子节点,4变成3的右孩子节点,如下图: 1 \ 2 3 \ 5 4 再位移倒数第二层,3变成1的左孩子节点,2变成1的右孩子的节点,它们的孩子节点随着一起位移,如下图: 1 \ 3 2 \ 4 5 根节点没有双亲节点,不用位移,位移完毕 现在给你这棵二叉树,请你返回循环右移位后的二叉树。
示例3
说明
1
\
3
/ \
4 5
变为
变为
1
/
3
/ \
5 4
备注:
树的节点个数在之间,且保证该树上每个节点的编号不同,节点编号并非按顺序排列,。
加载中...