zoukankan      html  css  js  c++  java
  • leetcode1315

     1 class Solution:
     2     def __init__(self):
     3         self.result = 0
     4 
     5     def preOrder(self,root):
     6         if root != None:
     7             if root.val % 2 == 0:
     8                 self.levelOrder(root)
     9             if root.left != None:
    10                 self.preOrder(root.left)
    11             if root.right != None:
    12                 self.preOrder(root.right)
    13 
    14     def levelOrder(self,root):
    15         if root.left != None:
    16             if root.left.left != None:
    17                 self.result += root.left.left.val
    18             if root.left.right != None:
    19                 self.result += root.left.right.val
    20 
    21         if root.right != None:
    22             if root.right.left != None:
    23                 self.result += root.right.left.val
    24             if root.right.right != None:
    25                 self.result += root.right.right.val
    26 
    27     def sumEvenGrandparent(self, root: 'TreeNode') -> int:
    28         self.preOrder(root)
    29         return self.result

    算法思路:二叉树遍历。

    先按照某种顺序遍历二叉树,本代码使用的是先序遍历。

    对于每一个当前节点,如果是偶数,则求其孙子节点的和,累加到全局变量中。

  • 相关阅读:
    Java 泛型约束
    Java 单例模式
    Java中的Atomic包使用指南
    基数排序
    归并排序
    插入排序
    选择排序
    交换排序
    Java多线程 LockSupport
    Java并发控制:ReentrantLock Condition使用详解
  • 原文地址:https://www.cnblogs.com/asenyang/p/12181601.html
Copyright © 2011-2022 走看看