From 4dbf7ab57eff03d567eb74c6b22f1b60c86e5be5 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Thu, 29 Aug 2024 00:05:08 +0800 Subject: [PATCH] =?UTF-8?q?2024/8/28=20LeetCode=20Hot100=20binaryTree=20Nu?= =?UTF-8?q?m543=E6=9C=89bug=20106=E6=A1=88=E4=BE=8B=E8=BF=87101?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/hot100/binary_tree/Num101.java | 35 +++++++++++++++++ .../com/cool/hot100/binary_tree/Num104.java | 38 +++++++++++++++++++ .../com/cool/hot100/binary_tree/Num226.java | 28 ++++++++++++++ .../com/cool/hot100/binary_tree/Num543.java | 28 ++++++++++++++ .../com/cool/hot100/binary_tree/Num94.java | 31 +++++++++++++++ .../com/cool/hot100/binary_tree/TreeNode.java | 27 +++++++++++++ 6 files changed, 187 insertions(+) create mode 100644 src/main/java/com/cool/hot100/binary_tree/Num101.java create mode 100644 src/main/java/com/cool/hot100/binary_tree/Num104.java create mode 100644 src/main/java/com/cool/hot100/binary_tree/Num226.java create mode 100644 src/main/java/com/cool/hot100/binary_tree/Num543.java create mode 100644 src/main/java/com/cool/hot100/binary_tree/Num94.java create mode 100644 src/main/java/com/cool/hot100/binary_tree/TreeNode.java diff --git a/src/main/java/com/cool/hot100/binary_tree/Num101.java b/src/main/java/com/cool/hot100/binary_tree/Num101.java new file mode 100644 index 0000000..4ab419b --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/Num101.java @@ -0,0 +1,35 @@ +package com.cool.hot100.binary_tree; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:23 + * DayNumber 4 + * Hard 1 + * Level 3 + */ +public class Num101 { + + public boolean isSymmetric(TreeNode root) { + if (root == null) return false; + if (root.left != null && root.right != null) { + if (root.left.val != root.right.val) return false; + else { + return isSymmetric(root.left, root.right); + } + } else return root.left == root.right; + } + + public boolean isSymmetric(TreeNode left, TreeNode right) { + if (left == right) return true; + if (left != null && right != null) { + boolean res = (left.val == right.val); + if (res) res = isSymmetric(left.left, right.right); + if (res) res = isSymmetric(left.right, right.left); + return res; + } + return false; + } + +} diff --git a/src/main/java/com/cool/hot100/binary_tree/Num104.java b/src/main/java/com/cool/hot100/binary_tree/Num104.java new file mode 100644 index 0000000..e60de19 --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/Num104.java @@ -0,0 +1,38 @@ +package com.cool.hot100.binary_tree; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:12 + * DayNumber 2 + * Hard 1 + * Level 3 + */ +public class Num104 { + + private int max=0; + private int cur=0; + public int maxDepth(TreeNode root) { + if(root==null) return max; + + dfs(root); + return max; + } + private void dfs(TreeNode root){ + if(root==null)return; + if(root.left!=null) { + cur++; + max=Math.max(max,cur); + dfs(root.left); + cur--; + } + if(root.right!=null){ + cur++; + max=Math.max(max,cur); + dfs(root.right); + cur--; + } + } + +} diff --git a/src/main/java/com/cool/hot100/binary_tree/Num226.java b/src/main/java/com/cool/hot100/binary_tree/Num226.java new file mode 100644 index 0000000..f831f4b --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/Num226.java @@ -0,0 +1,28 @@ +package com.cool.hot100.binary_tree; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:20 + * DayNumber 3 + * Hard 1 + * Level 3 + */ +public class Num226 { + + public TreeNode invertTree(TreeNode root) { + dfsInvertTree(root); + return root; + } + + private void dfsInvertTree(TreeNode root) { + if (root == null) return; + TreeNode right = root.right; + root.right=root.left; + root.left=right; + dfsInvertTree(root.left); + dfsInvertTree(root.right); + } + +} diff --git a/src/main/java/com/cool/hot100/binary_tree/Num543.java b/src/main/java/com/cool/hot100/binary_tree/Num543.java new file mode 100644 index 0000000..f0abcc5 --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/Num543.java @@ -0,0 +1,28 @@ +package com.cool.hot100.binary_tree; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:52 + * DayNumber 5 + * Hard 1 + * Level 3 + */ +public class Num543 { + + public int diameterOfBinaryTree(TreeNode root) { + if (root == null) return 0; + int left = getTreeDeep(root.left); + int right = getTreeDeep(root.right); + return left + right; + } + + private int getTreeDeep(TreeNode root) { + if (root == null) return 0; + int res = getTreeDeep(root.left); + res = Math.max(res, getTreeDeep(root.right)); + return res + 1; + } + +} diff --git a/src/main/java/com/cool/hot100/binary_tree/Num94.java b/src/main/java/com/cool/hot100/binary_tree/Num94.java new file mode 100644 index 0000000..ec6a250 --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/Num94.java @@ -0,0 +1,31 @@ +package com.cool.hot100.binary_tree; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:02 + * DayNumber 1 + * Hard 1 + * Level 3 + */ +public class Num94 { + + public List inorderTraversal(TreeNode root) { + List list=new ArrayList<>(); + mediumTraverse(root,list); + return list; + } + private void mediumTraverse(TreeNode root,List list){ + if(root==null){ + return; + } + mediumTraverse(root.left,list); + list.add(root.val); + mediumTraverse(root.right,list); + } + +} diff --git a/src/main/java/com/cool/hot100/binary_tree/TreeNode.java b/src/main/java/com/cool/hot100/binary_tree/TreeNode.java new file mode 100644 index 0000000..add3435 --- /dev/null +++ b/src/main/java/com/cool/hot100/binary_tree/TreeNode.java @@ -0,0 +1,27 @@ +package com.cool.hot100.binary_tree; + +/** + * Created with IntelliJ IDEA. + * + * @Author: Cool + * @Date: 2024/08/28/23:03 + * @Description: 二叉树节点 + */ +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; + } +}