利用Python改变二叉树的根节点的程序
假设我们有一棵二叉树和一个位于二叉树叶子节点上的节点。我们必须将叶子节点变为二叉树的根节点。我们可以按照以下方式操作 −
- 如果一个节点有左孩子,则它变为右孩子。
-
一个节点的父节点变为其左孩子。在此过程中,父节点链接到该节点的链接变为null,因此它只有一个孩子。
树的节点结构如下所示 −
我们必须返回转换后的根节点。
因此,如果输入如下所示
新根为8;则转换后的树的中序表示将为 − 2, 3, 4, 5, 7, 6, 8,
树的新根节点是8。
要解决这个问题,我们将遵循以下步骤−
- 定义一个函数helper()。这将获取节点和new_par
- 如果节点与根相同,则
- 节点的父节点:=new_par
-
如果节点的左侧与new_par相同,则
-
节点的左侧:= null
-
如果节点的右侧与new_par相同,则
-
节点的右侧:= null
-
返回根
-
如果节点的左侧不为null,则
- 节点的右侧:=节点的左侧
- 如果节点的父节点的左侧与节点相同,则
- 节点的父节点的左侧:=null
- 节点的左侧:= helper(node的父节点,节点)
-
节点的父节点:=new_par
-
返回节点
- 如果节点与根相同,则
-
返回helper(叶子,null)
让我们看以下示例以获得更好的理解。
更多Python相关文章,请阅读:Python 教程