草庐IT

leetcode 101. Symmetric Tree 对称二叉树(简单)

一、题目大意给你一个二叉树的根节点root,检查它是否轴对称。示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围[1,1000]内-100进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/symmetric-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路判断一个树是否对称等价于判断左右子树是否对称。分四步:(1)如果两个子树都为空指针,则

leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)

一、题目大意给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。展开后的单链表应该与二叉树先序遍历顺序相同。示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示例2:输入:root=[]输出:[]示例3:输入:root=[0]输出:[0]提示:树中结点数在范围[0,2000]内-100进阶:你可以使用原地算法(O(1)额外空间)展开这棵树吗?来源:力扣(LeetCode)链接:https:/

代码随想录 | 二叉树

226.翻转二叉树给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]ψ(`∇´)ψ我的思路还是用了层序遍历的方法,在该结点左右孩子入栈之后,互换左右指针/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,TreeNoderi

leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)

一、题目大意给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度3。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:求二叉树的最大深度问题用深度优先搜索DepthFirstSearch,递归的完美应用。思路二:也可以用层序遍历二叉树,然后

代码随想录 | 二叉树

226.翻转二叉树给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]ψ(`∇´)ψ我的思路还是用了层序遍历的方法,在该结点左右孩子入栈之后,互换左右指针/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,TreeNoderi

leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)

一、题目大意给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度3。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:求二叉树的最大深度问题用深度优先搜索DepthFirstSearch,递归的完美应用。思路二:也可以用层序遍历二叉树,然后

代码随想录 | 进阶二叉树

二叉树的构造默认如下:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,TreeNoderight){*this.val=val;*this.left=left;*this.right=right;*}*}*/654.最大二叉树给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:

leetcode 227. Basic Calculator II 基本计算器 II(中等)

一、题目大意给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在[-231,231-1]的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。示例1:输入:s="3+2*2"输出:7示例2:输入:s="3/2"输出:1示例3:输入:s="3+5/2"输出:5提示:1s由整数和算符('+','-','*','/')组成,中间由一些空格隔开s表示一个有效表达式表达式中的所有整数都是非负整数,且在范围[0,231-1]内题目数据保证答案是一个32-bit整数来源:力扣(LeetCo

代码随想录 | 进阶二叉树

二叉树的构造默认如下:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,TreeNoderight){*this.val=val;*this.left=left;*this.right=right;*}*}*/654.最大二叉树给定一个不重复的整数数组 nums。 最大二叉树 可以用下面的算法从 nums递归地构建:

leetcode 227. Basic Calculator II 基本计算器 II(中等)

一、题目大意给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在[-231,231-1]的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。示例1:输入:s="3+2*2"输出:7示例2:输入:s="3/2"输出:1示例3:输入:s="3+5/2"输出:5提示:1s由整数和算符('+','-','*','/')组成,中间由一些空格隔开s表示一个有效表达式表达式中的所有整数都是非负整数,且在范围[0,231-1]内题目数据保证答案是一个32-bit整数来源:力扣(LeetCo