Merge pull request #2073 from Lozakaka/patch-9

adding java iteration
This commit is contained in:
程序员Carl
2023-05-28 10:57:30 +08:00
committed by GitHub

View File

@ -177,6 +177,8 @@ public:
## Java
**递归**
```Java
class Solution {
int sum;
@ -198,6 +200,42 @@ class Solution {
}
}
```
**迭代**
```Java
class Solution {
//DFS iteraion統一迭代法
public TreeNode convertBST(TreeNode root) {
int pre = 0;
Stack<TreeNode> stack = new Stack<>();
if(root == null) //edge case check
return null;
stack.add(root);
while(!stack.isEmpty()){
TreeNode curr = stack.peek();
//curr != null的狀況只負責存node到stack中
if(curr != null){
stack.pop();
if(curr.left != null) //左
stack.add(curr.left);
stack.add(curr); //中
stack.add(null);
if(curr.right != null) //右
stack.add(curr.right);
}else{
//curr == null的狀況只負責做單層邏輯
stack.pop();
TreeNode temp = stack.pop();
temp.val += pre;
pre = temp.val;
}
}
return root;
}
}
```
## Python
递归法(版本一)