对称二叉树Python解法
生活随笔
收集整理的這篇文章主要介紹了
对称二叉树Python解法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給你一個(gè)二叉樹的根節(jié)點(diǎn) root , 檢查它是否軸對(duì)稱。
例:
輸入:root = [1,2,2,3,4,4,3] 輸出:true解析:
因?yàn)槭嵌鏄?#xff0c;那么一次只需要比較兩個(gè)節(jié)點(diǎn)即可。根節(jié)點(diǎn)比較一次,中間節(jié)點(diǎn)比較兩次,左邊節(jié)點(diǎn)的左節(jié)點(diǎn)和右邊節(jié)點(diǎn)的右節(jié)點(diǎn),左邊節(jié)點(diǎn)的右節(jié)點(diǎn)和右邊節(jié)點(diǎn)的左節(jié)點(diǎn)。遞歸。
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object):def isSymmetric(self, root):""":type root: TreeNode:rtype: bool"""def check(node1, node2):if not node1 and not node2: # 兩個(gè)節(jié)點(diǎn)都不存在return Trueelif not node1 or not node2: # 一個(gè)存在一個(gè)不存在return Falseif node1.val != node2.val: # 值不相等return Falsereturn check(node1.left, node2.right) and check(node1.right, node2.left) # 分兩次比對(duì),因?yàn)槭嵌鏄?#xff0c;一個(gè)節(jié)點(diǎn)最多有兩個(gè)子節(jié)點(diǎn)。return check(root, root)總結(jié)
以上是生活随笔為你收集整理的对称二叉树Python解法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 格雷编码Python解法
- 下一篇: 微软反戈一击 反垄断战火引至日本本土