zoukankan      html  css  js  c++  java
  • Leetcode代码补全——二叉树

      在刷leetcode的过程中发现,在原网页输入答案是不需要自己构筑树和链表的,虽然便于直接思考算法,但是久而久之类似过于依赖编辑器,反而不知道如何创建树和链表,因此总结了该网页省略的部分,以其中题为例呈现出来。

    1、树状图题目,判定对称树

    class TreeNode(object):
      def __init__(self, x,left,right):#此处有改动原网页是(self,x)此处多加了left和right,因为这样在下面构造链表时可以输入三个参数,而按原网页的方式每次只能传递一个参数,每个节点都要再加个类名很不方便

        self.val = x
        self.left = None
        self.right = None

    class Solution(object):
      def isSymmetric(self, root):
    """
    :type root: TreeNode
    :rtype: bool
    """
        if not root:
          return True
        while root:
          return self.isSymmetriclr(root.left,root.right)

      def isSymmetriclr(self,left,right):
        if not (left or right):
          return True
        if (left==None and right) or (left and right==None):
          return False
        if left.val!=right.val:
          return False
        if not self.isSymmetriclr(left.left,right.right):
          return False
        if not self.isSymmetriclr(left.right,right.left):
          return False
        return True

    #下面是实例化构造二叉树部分和判断对称部分的实例化
    tree=TreeNode(1,(2,3,(4,3)),(2,(4,None,3),3))#此处可直接传3个参数
    a=Solution()
    print a.isSymmetric(tree)

  • 相关阅读:
    边界值分析
    等价类划分
    手工检测SQL注入(安全性测试)
    Web安全性测试
    Jmeter使用流程及简单分析监控
    使用可视化工具redisclient连接redis
    Java ThreadLocal的使用
    jvm中的新生代Eden和survivor区
    策略模式和工厂模式的区别
    java将一数组乱序排列
  • 原文地址:https://www.cnblogs.com/garvicker/p/8947014.html
Copyright © 2011-2022 走看看