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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM