摘要:解题思路所谓的对称,是左右相反位置的节点的值判断是否相同。只要出现不同,即可返回即可,否则继续进行处理。
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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/44710.html
摘要:题目要求检查一棵树是否是左右对称的。递归在这里递归的一般情况是,输入进行比较的左子树和右子树的根节点,先判断该俩根节点是否等价,然后判断子节点是否等价。栈通过栈的形式同样可以实现比较。将需要进行比较的节点依次压入栈中。 题目要求 Given a binary tree, check whether it is a mirror of itself (ie, symmetric arou...
摘要:回来更新一波,最近刷剑指,才又发现树真是一个大头,二叉树的题目和变化运用好多啊二叉树算法引子很多人说二叉树没什么卵用,我觉得是他的工资和公司让他跨不过这个坎还有很多人学了一些树的知识,发现也用不上,我想说的是,读一本书体现不了这本书 回来更新一波,最近刷《剑指offer》,才又发现树真是一个大头,二叉树的题目和变化运用好多啊~ /** * PHP二叉树算法 * Create...
摘要:回来更新一波,最近刷剑指,才又发现树真是一个大头,二叉树的题目和变化运用好多啊二叉树算法引子很多人说二叉树没什么卵用,我觉得是他的工资和公司让他跨不过这个坎还有很多人学了一些树的知识,发现也用不上,我想说的是,读一本书体现不了这本书 回来更新一波,最近刷《剑指offer》,才又发现树真是一个大头,二叉树的题目和变化运用好多啊~ /** * PHP二叉树算法 * Create...
阅读 631·2019-08-30 15:44
阅读 1289·2019-08-30 11:02
阅读 2924·2019-08-29 18:42
阅读 3494·2019-08-29 16:16
阅读 1701·2019-08-26 13:55
阅读 1749·2019-08-26 13:45
阅读 2371·2019-08-26 11:43
阅读 3172·2019-08-26 10:32