首页 > 其他分享 >LeetCode刷题记录.Day33

LeetCode刷题记录.Day33

时间:2022-12-17 21:23:20浏览次数:71  
标签:结点 队列 Day33 rightNode que push leftNode LeetCode 刷题

对称二叉树

迭代法

class Solution {
public:
    bool isSymmetric(TreeNode* root) {
        if(root == NULL) return true;
         
        queue<TreeNode*> que;
        que.push(root->left);   // 将左子树头结点加入队列
        que.push(root->right);  // 将右子树头结点加入队列
        while(!que.empty()){
            TreeNode* leftNode = que.front(); que.pop(); //左节点出队
            TreeNode* rightNode = que.front(); que.pop(); //右节点出队
            if (!leftNode && !rightNode) {  // 左节点为空、右节点为空,此时说明是对称的
                continue;
            }
            // 左右一个节点不为空,或者都不为空但数值不相同,返回false
            if ((!leftNode || !rightNode || (leftNode->val != rightNode->val))) {
                return false;
            }

            que.push(leftNode->left);   // 将左子结点加入队列
            que.push(rightNode->right);   // 将右子结点加入队列
            que.push(leftNode->right);   // 将左子结点加入队列
            que.push(rightNode->left);   // 将右子结点加入队列

        }
        return true;
    }
};

 

复习二叉树的用法

标签:结点,队列,Day33,rightNode,que,push,leftNode,LeetCode,刷题
From: https://www.cnblogs.com/tianmaster/p/16989548.html

相关文章

  • [LeetCode]006-Z字形变换
    >>>传送门题目将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z字形排列。比如输入字符串为"PAYPALISHIRING" 行数为3时,排列如下:PA......
  • #yyds干货盘点# LeetCode程序员面试金典:化栈为队
    题目:实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueuequeue=newMyQueue();queue.push(1);queue.push(2);queue.peek(); //返回1queue.pop(); //返回......
  • LeetCode HOT 100:合并区间
    题目:56.合并区间题目描述:给你一个二维数组,类似于[[1,3],[2,6],[6,10],[15,18]],其中每一个元素表示一个区间,区间0下标表示区间左边界,1下标表示区间右边界。题目要求......
  • [LeetCode]005-最长回文子串
    >>传送门题目给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。示例示例1输入:s="babad"输出:"bab"解释:"ab......
  • #yyds干货盘点# LeetCode程序员面试金典:堆盘子
    题目:堆盘子。设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由......
  • LEETCODE 222. 完全二叉树的节点个数
    递归递归很简单,遍历整棵树即可,代码复杂度为O(n)点击查看代码funccountNodes(root*TreeNode)int{ifroot==nil{return0}return1+coun......
  • 【LeetCode】题解合集(JavaScript版)
    前言:今年断断续续写了些LeetCode题目,一方面是为了一个比较现实的问题——面试,最重要的是要复习之前学习的数据结构与算法。后面有时间还会接续刷题…题解合集:题号题目题解1......
  • LeetCode 53_最大子数组和
    LeetCode53:最大子数组和题目给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例......
  • 刷题笔记——3005.糖果游戏
    题目3005.糖果游戏代码li=list(map(int,input().strip().split()))lenth=len(li)foriinrange(lenth):#设置当前位置的左右位置ifi>0andi......
  • 刷题笔记 | 算法模板题-回文判定
    题目描述给定一个长度为n的字符串S。请你判断字符串S是否回文。输入描述输入仅1行包含一个字符串S。\(1\leq|S|\leq10^6\),保证S只包含大小写、字母。输......