门户网站建设服务收费,工业设计 做自己的网站 知乎,做网站赚钱平台,建设个直播网站要多少钱代码随想录算法刷题训练营day16#xff1a;LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数
LeetCode(104)二叉树的最大深度 题目 代码
/*** Definition for a binary tree node.* publ…代码随想录算法刷题训练营day16LeetCode(104)二叉树的最大深度 、LeetCode(559)n叉树的最大深度、LeetCode(111)二叉树的最小深度、LeetCode(222)完全二叉树的节点个数
LeetCode(104)二叉树的最大深度 题目 代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public int maxDepth(TreeNode root) {//通过递归去做---传入的是根节点可以求根节点的高度来代替深度//先求左右子树的高度1即为根节点的高度----确定遍历方式为左右根//采用递归先判断终止条件if(rootnull){return 0;}//不为空先求左子树的高度int heightLeftmaxDepth(root.left);//再求右子树的高度int heightRightmaxDepth(root.right);int heightRoot;//定义根节点的高度if(heightLeftheightRight){heightRootheightLeft1;}else{heightRootheightRight1;}return heightRoot;}
}LeetCode(559)n叉树的最大深度 题目 代码
// lc codestart
/*
// Definition for a Node.
class Node {public int val;public ListNode children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, ListNode _children) {val _val;children _children;}
};
*/class Solution {public int maxDepth(Node root) {//同样用后续遍历去做if(rootnull){return 0;}int maxheight0;ListNode childrensroot.children;//遍历集合for (Node children : childrens) {int tempHeightmaxDepth(children);if(tempHeightmaxheight){maxheighttempHeight;//找出所有子树中节点最高的树} }return maxheight1; }
}LeetCode(111)二叉树的最小深度 题目
代码
// lc codestart
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public int minDepth(TreeNode root) {if(rootnull){return 0;}int rootHeight;//同样用后续遍历去做if(root.leftnull){rootHeightminDepth(root.right)1;return rootHeight;}if(root.rightnull){rootHeightminDepth(root.left)1;return rootHeight;}int leftHeightminDepth(root.left);int rightHeightminDepth(root.right);if(leftHeightrightHeight){rootHeightleftHeight1;}else{rootHeightrightHeight1;}return rootHeight;}LeetCode(222)完全二叉树的节点个数 题目 代码
// lc codestart
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {int number0;public int countNodes(TreeNode root) {if(rootnull){return 0;}int leftCountNodescountNodes(root.left);int rightCountNodescountNodes(root.right);int countSumleftCountNodesrightCountNodes1;//常规遍历方法return countSum;}
}