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

题目博客:

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)
    



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值