Second Minimum Node In a Binary Tree

    这个题是简单题

  题目:

    

  思路:

    利用广搜(BFS)。定义一个列表a(存放节点),定义变量b(存放最小值)并赋值根节点值,定义变量c(存放第二小值)并赋值-1,遍历每个节点,如果其节点值大于b,而且如果c==-1那么c = 该节点值,否则如果该节点值小于c,那么c = 该节点值

  代码:

 1 class Solution(object):
 2     def findSecondMinimumValue(self, root):
 3         """
 4         :type root: TreeNode
 5         :rtype: int
 6         """
 7         
 8         a = [root]
 9         b = root.val
10         c = -1
11         while len(a) > 0:
12             node = a[0]
13             if node.left: a.append(node.left)
14             if node.right: a.append(node.right)
15             if node.val > b:
16                 if c == -1: c = node.val
17                 else:
18                     if node.val < c: c = node.val
19             a.pop(0)
20         return c

 

posted @ 2017-09-07 15:21  唐僧洗发爱飘柔  阅读(114)  评论(0)    收藏  举报