摘要:解題思路所謂的對稱,是左右相反位置的節點的值判斷是否相同。只要出現不同,即可返回即可,否則繼續進行處理。
topic:
101. Symmetric TreeDescription:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example
this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / 2 2 / / 3 4 4 3 But the following [1,2,2,null,3,null,3] is not: 1 / 2 2 3 3 Note: Bonus points if you could solve it both recursively and iteratively.
解題思路:1.所謂的對稱,是左右相反位置的節點的值判斷是否相同。
2.所有的節點對稱,是可以從源頭追根溯源的。 3.只要出現不同,即可返回即可,否則繼續進行處理。
代碼如下:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None from collections import deque class Solution: def isSymmetric(self, root): """ :type root: TreeNode :rtype: bool """ if not root: return True nodes_stack=[root.left,root.right] while nodes_stack: val_left,val_right=nodes_stack.pop(0),nodes_stack.pop(0) if not val_left and not val_right: continue elif not val_left or not val_right: return False elif val_left.val!=val_right.val: return False else: nodes_stack.extend([val_left.left,val_right.right,val_left.right,val_right.left]) return True
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44710.html
摘要:題目要求檢查一棵樹是否是左右對稱的。遞歸在這里遞歸的一般情況是,輸入進行比較的左子樹和右子樹的根節點,先判斷該倆根節點是否等價,然后判斷子節點是否等價。棧通過棧的形式同樣可以實現比較。將需要進行比較的節點依次壓入棧中。 題目要求 Given a binary tree, check whether it is a mirror of itself (ie, symmetric arou...
摘要:回來更新一波,最近刷劍指,才又發現樹真是一個大頭,二叉樹的題目和變化運用好多啊二叉樹算法引子很多人說二叉樹沒什么卵用,我覺得是他的工資和公司讓他跨不過這個坎還有很多人學了一些樹的知識,發現也用不上,我想說的是,讀一本書體現不了這本書 回來更新一波,最近刷《劍指offer》,才又發現樹真是一個大頭,二叉樹的題目和變化運用好多啊~ /** * PHP二叉樹算法 * Create...
摘要:回來更新一波,最近刷劍指,才又發現樹真是一個大頭,二叉樹的題目和變化運用好多啊二叉樹算法引子很多人說二叉樹沒什么卵用,我覺得是他的工資和公司讓他跨不過這個坎還有很多人學了一些樹的知識,發現也用不上,我想說的是,讀一本書體現不了這本書 回來更新一波,最近刷《劍指offer》,才又發現樹真是一個大頭,二叉樹的題目和變化運用好多啊~ /** * PHP二叉樹算法 * Create...
閱讀 654·2019-08-30 15:44
閱讀 1381·2019-08-30 11:02
閱讀 2980·2019-08-29 18:42
閱讀 3506·2019-08-29 16:16
閱讀 1720·2019-08-26 13:55
閱讀 1769·2019-08-26 13:45
閱讀 2385·2019-08-26 11:43
閱讀 3247·2019-08-26 10:32