No15_输入一颗二元查找树,将该树转换为它的镜像,

来源:互联网 发布:证件照片打印软件 编辑:程序博客网 时间:2024/05/08 09:09

题目博客:

http://blog.csdn.net/v_JULY_v/article/details/6057286

题目:

即在转换后的二元查找树中,左子树的结点都大于右子树的结点。
用递归和循环两种方法完成树的镜像转换。  
例如输入:
  8
  / /
  6 10
 // //
5 7 9 11

输出:
   8
  / /
 10 6
 // //
11 9 7 5

只做递归的。。不想做循环的了。

#coding=utf-8'''Created on 2014年5月24日@author: Administrator'''class TreeNode:    def __init__(self,value,leftChild=None,rightChild=None):        self.value=value        self.leftChild,self.rightChild=leftChild,rightChilddef swap(Treeroot):    if not Treeroot:        return     else:        swap(Treeroot.leftChild)        swap(Treeroot.rightChild)        Treeroot.leftChild,Treeroot.rightChild=Treeroot.rightChild,Treeroot.leftChilddef printTree(root):    if not root:        return     else:        printTree(root.leftChild)        print root.value,        printTree(root.rightChild)        if __name__ == '__main__':    node5=TreeNode(5)    node7=TreeNode(7)    node9=TreeNode(9)    node11=TreeNode(11)    node6=TreeNode(6,leftChild=node5,rightChild=node7)    node10=TreeNode(10,leftChild=node9,rightChild=node11)    node8=TreeNode(8,leftChild=node6,rightChild=node10)    printTree(node8)    print     swap(node8)    printTree(node8)    



0 0