zoukankan      html  css  js  c++  java
  • 二叉树,给定任意两个节点,寻找最近的父节点

    网上看到的一个题目: 给定一棵二叉树,以及两个节点,请找出它们最近的父节点。

    所谓最近,就是“血缘关系”最近啦,这个你懂得~~

    用python写了一下,感觉还不坏:


    class
     node:
        def __init__( self , data, left, right):
            self .data = data
            self .left = left
            self .right = right
       
    def is_leaf(n):
        if n.left == None and n.right == None:
            return True
        return False
       
    def find_parent(n, data1, data2):
        if n == None :
            return 0
       
        if is_leaf(n):
            if n.data == data1:
                return 1
            elif n.data == data2:
                return 2
            else :
                return 0
       
        lr = find_parent(n.left, data1, data2)
        rr = find_parent(n.right, data1, data2)
           
        if lr + rr == 3:
            print "find node : " + str(n.data)
           
        return lr + rr
     
    def print_tree(t):
        if t == None :
            return
       
        print t.data
        print_tree(t.left)
        print_tree(t.right)
     
    tree = node(1, NoneNone )
    tree.left = node(2, NoneNone )
    tree.right = node(3, NoneNone )
    tree.left.left = node(4, NoneNone )
    tree.left.right = node(5, NoneNone )
    tree.left.left.left = node(6, NoneNone )
    tree.left.left.right = node(7, NoneNone )
    tree.right.left = node(8, NoneNone )
    tree.right.right = node(9, NoneNone )
     
    print_tree(tree)
    print "------------------"
    find_parent(tree, 7, 6)
    print "------------------"
    find_parent(tree, 7, 5)
  • 相关阅读:
    zt 五子棋判断禁手的一些资料 学习ing
    acwing 242. 一个简单的整数问题
    acwing 241. 楼兰图腾
    leetcode 1309 Decrypt String from Alphabet to Integer Mapping
    leetcode 1310. XOR Queries of a Subarray
    acwing 1250. 格子游戏 并查集
    MongoDB shell操作
    MongoDB shell操作
    How to retreive raw post data from HttpServletRequest in java
    How to retreive raw post data from HttpServletRequest in java
  • 原文地址:https://www.cnblogs.com/ohscar/p/3109601.html
Copyright © 2011-2022 走看看