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)

  • 相关阅读:
    kafka的一些坑
    文件上传到七牛云oss并刷新cdn
    docker swarm集群常用操作
    kubernets中jenkins使用清华源加速插件安装
    获取jenkins插件最新版本
    kubeadm安装集群系列-7.部署jenkins
    kubeadm安装集群系列-6.ingress-nginx安装
    docker清理
    kubeadm安装集群系列-5.其他操作
    kubeadm安装集群系列-4.证书更新
  • 原文地址:https://www.cnblogs.com/garvicker/p/8947014.html
Copyright © 2011-2022 走看看