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)

  • 相关阅读:
    Jar包管理规范
    Base64编码原理与应用
    MySQL 5.7.14安装说明,解决服务无法启动
    idea注册
    Oracle 如何对中文字段进行排序
    SVN错误:Attempted to lock an already-locked dir
    排序算法
    设计模式
    分层
    阿里云
  • 原文地址:https://www.cnblogs.com/garvicker/p/8947014.html
Copyright © 2011-2022 走看看