修改0530.二叉搜索树的最小绝对差.md的Java版本 进行了代码格式化并添加了统一迭代法的注释

This commit is contained in:
‘windscape’
2025-01-25 11:52:09 +08:00
parent da742feaa3
commit e6698cbac4

View File

@ -153,23 +153,27 @@ public:
递归 递归
```java ```java
class Solution { class Solution {
TreeNode pre;// 记录上一个遍历的结点 TreeNode pre; // 记录上一个遍历的结点
int result = Integer.MAX_VALUE; int result = Integer.MAX_VALUE;
public int getMinimumDifference(TreeNode root) { public int getMinimumDifference(TreeNode root) {
if(root==null)return 0; if (root == null)
return 0;
traversal(root); traversal(root);
return result; return result;
} }
public void traversal(TreeNode root){
if(root==null)return; public void traversal(TreeNode root) {
//左 if (root == null)
return;
// 左
traversal(root.left); traversal(root.left);
//中 //
if(pre!=null){ if (pre != null) {
result = Math.min(result,root.val-pre.val); result = Math.min(result, root.val - pre.val);
} }
pre = root; pre = root;
//右 //
traversal(root.right); traversal(root.right);
} }
} }
@ -182,22 +186,27 @@ class Solution {
TreeNode pre = null; TreeNode pre = null;
int result = Integer.MAX_VALUE; int result = Integer.MAX_VALUE;
if(root != null) if (root != null)
stack.add(root); stack.add(root);
while(!stack.isEmpty()){
// 中序遍历(左中右),由于栈先入后出,反序(右中左)
while (!stack.isEmpty()) {
TreeNode curr = stack.peek(); TreeNode curr = stack.peek();
if(curr != null){ if (curr != null) {
stack.pop(); stack.pop();
if(curr.right != null) // 右
if (curr.right != null)
stack.add(curr.right); stack.add(curr.right);
// 中先用null标记
stack.add(curr); stack.add(curr);
stack.add(null); stack.add(null);
if(curr.left != null) // 左
if (curr.left != null)
stack.add(curr.left); stack.add(curr.left);
}else{ } else { // 中遇到null再处理
stack.pop(); stack.pop();
TreeNode temp = stack.pop(); TreeNode temp = stack.pop();
if(pre != null) if (pre != null)
result = Math.min(result, temp.val - pre.val); result = Math.min(result, temp.val - pre.val);
pre = temp; pre = temp;
} }
@ -674,3 +683,4 @@ public class Solution
<a href="https://programmercarl.com/other/kstar.html" target="_blank"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/> <img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a> </a>