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