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)

  • 相关阅读:
    [转] MapReduce详解
    [转] 自然语言处理全家福:纵览当前NLP中的任务、数据、模型与论文
    [转] 一文读懂BERT中的WordPiece
    [转] 文本分类——GLUE数据集介绍
    [转] Transformer详解
    [python] 转json好用的工具mark
    [转] 深度学习中的注意力机制
    [转] Python之time模块的时间戳、时间字符串格式化与转换
    日期相关
    airflow的定时任务
  • 原文地址:https://www.cnblogs.com/garvicker/p/8947014.html
Copyright © 2011-2022 走看看