zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 3

    Binary Tree Right Side View

    错误点:

    • 是if right... if left,而不是if right elif left,因为有可能右子树向下没有左子树深,所以要左子树也遍历。而控制是否是第一个用的是结果list是否已经有元素。这里容易出错是因为会错认为如果有right child那么left child就不用考虑了,没有考虑之后的情况。

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

    For example:
    Given the following binary tree,

    
       1            <---
     /   
    2     3         <---
          
      5     4       <---
    
    

    You should return [1, 3, 4].

    
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def rightSideView(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            def doRight(root, depth, res):
                if depth==len(res):
                    res.append(root.val)
                
                if root.right:
                    doRight(root.right, depth+1, res)
                
                if root.left:
                    doRight(root.left, depth+1, res)
                
            res = []
            if not root: return res
            doRight(root, 0, res)
            return res
    
  • 相关阅读:
    loadrunner 录制login(关联 参数化 检查点)
    nmon安装(转)
    理解Load Average做好压力测试
    内存泄漏
    上下文切换
    Jmeter 多台机器产生负载
    Java jvm 原理
    【转】HTML-based script和URL-based script两种脚本录制方式
    cookie模拟
    startUML破解方式
  • 原文地址:https://www.cnblogs.com/absolute/p/5544322.html
Copyright © 2011-2022 走看看