mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
@ -155,9 +155,82 @@ public:
|
|||||||
|
|
||||||
## 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
|
||||||
Java:
|
Java:
|
||||||
|
|
||||||
|
```java
|
||||||
|
// 前序遍历顺序:中-左-右,入栈顺序:中-右-左
|
||||||
|
class Solution {
|
||||||
|
public List<Integer> preorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
if (root == null){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
stack.push(root);
|
||||||
|
while (!stack.isEmpty()){
|
||||||
|
TreeNode node = stack.pop();
|
||||||
|
result.add(node.val);
|
||||||
|
if (node.right != null){
|
||||||
|
stack.push(node.right);
|
||||||
|
}
|
||||||
|
if (node.left != null){
|
||||||
|
stack.push(node.left);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 中序遍历顺序: 左-中-右 入栈顺序: 左-右
|
||||||
|
class Solution {
|
||||||
|
public List<Integer> inorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
if (root == null){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
TreeNode cur = root;
|
||||||
|
while (cur != null || !stack.isEmpty()){
|
||||||
|
if (cur != null){
|
||||||
|
stack.push(cur);
|
||||||
|
cur = cur.left;
|
||||||
|
}else{
|
||||||
|
cur = stack.pop();
|
||||||
|
result.add(cur.val);
|
||||||
|
cur = cur.right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 后序遍历顺序 左-右-中 入栈顺序:中-左-右 出栈顺序:中-右-左, 最后翻转结果
|
||||||
|
class Solution {
|
||||||
|
public List<Integer> postorderTraversal(TreeNode root) {
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
if (root == null){
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
Stack<TreeNode> stack = new Stack<>();
|
||||||
|
stack.push(root);
|
||||||
|
while (!stack.isEmpty()){
|
||||||
|
TreeNode node = stack.pop();
|
||||||
|
result.add(node.val);
|
||||||
|
if (node.left != null){
|
||||||
|
stack.push(node.left);
|
||||||
|
}
|
||||||
|
if (node.right != null){
|
||||||
|
stack.push(node.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Collections.reverse(result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
```python3
|
```python3
|
||||||
|
Reference in New Issue
Block a user