题目博客:
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,rightChild
def swap(Treeroot):
if not Treeroot:
return
else:
swap(Treeroot.leftChild)
swap(Treeroot.rightChild)
Treeroot.leftChild,Treeroot.rightChild=Treeroot.rightChild,Treeroot.leftChild
def 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)