jjzjj

treeNode

全部标签

leetcode 1110. Delete Nodes And Return Forest 删点成林(中等)

一、题目大意给出二叉树的根节点root,树上每个节点都有一个不同的值。如果节点值在to_delete中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。返回森林中的每棵树。你可以按任意顺序组织答案。示例1:输入:root=[1,2,3,4,5,6,7],to_delete=[3,5]输出:[[1,2,null,4],[6],[7]]示例2:输入:root=[1,2,4,null,3],to_delete=[3]输出:[[1,2,4]]提示:树中的节点数最大为1000。每个节点都有一个介于1到1000之间的值,且各不相同。to_delete.lengthto_dele

leetcode 226. Invert Binary Tree 翻转二叉树(简单)

一、题目大意给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]提示:树中节点数目范围在[0,100]内-100来源:力扣(LeetCode)链接:https://leetcode.cn/problems/invert-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路翻转二叉树是树的基本操作之一,可以使用递归和非递归两种方法。递归方法:交换当前左

数据结构学习——树的遍历

树的遍历前言在一个平常的星期二下午,一节数据结构课中,想着做点什么的我,打开了力扣。正好老师在讲树,我也从二叉树最基础的遍历开始刷题,没想到打开了新世界的大门······前提知识二叉树有三种遍历方式:前序遍历(根节点->左子树->右子树)中序遍历(左子树->根节点->右子树)后序遍历(左子树->右子树->根节点)可以看出这三种遍历方式的特点:前/中/后,代表着根节点的遍历顺序左子树一定比右子树先访问到遍历方法一————递归用当时老师的话来说就是:三行代码的事至于哪三行,话不多说,上代码://LeetCode144.二叉树的前序遍历/***Definitionforabinarytreenode

leetcode 1110. Delete Nodes And Return Forest 删点成林(中等)

一、题目大意给出二叉树的根节点root,树上每个节点都有一个不同的值。如果节点值在to_delete中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。返回森林中的每棵树。你可以按任意顺序组织答案。示例1:输入:root=[1,2,3,4,5,6,7],to_delete=[3,5]输出:[[1,2,null,4],[6],[7]]示例2:输入:root=[1,2,4,null,3],to_delete=[3]输出:[[1,2,4]]提示:树中的节点数最大为1000。每个节点都有一个介于1到1000之间的值,且各不相同。to_delete.lengthto_dele

leetcode 110. Balanced Binary Tree 平衡二叉树(简单)

一、题目大意给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true示例2:输入:root=[1,2,2,3,3,null,null,4,4]输出:false示例3:输入:root=[]输出:true提示:树中的节点数在范围[0,5000]内-104来源:力扣(LeetCode)链接:https://leetcode.cn/problems/balanced-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商

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:/

leetcode 110. Balanced Binary Tree 平衡二叉树(简单)

一、题目大意给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true示例2:输入:root=[1,2,2,3,3,null,null,4,4]输出:false示例3:输入:root=[]输出:true提示:树中的节点数在范围[0,5000]内-104来源:力扣(LeetCode)链接:https://leetcode.cn/problems/balanced-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商

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,递归的完美应用。思路二:也可以用层序遍历二叉树,然后