mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
添加(二叉树的统一迭代法.md):增加typescript版本
This commit is contained in:
@ -522,7 +522,75 @@ var postorderTraversal = function(root, res = []) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// 前序遍历(迭代法)
|
||||||
|
function preorderTraversal(root: TreeNode | null): number[] {
|
||||||
|
let helperStack: (TreeNode | null)[] = [];
|
||||||
|
let res: number[] = [];
|
||||||
|
let curNode: TreeNode | null;
|
||||||
|
if (root === null) return res;
|
||||||
|
helperStack.push(root);
|
||||||
|
while (helperStack.length > 0) {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
if (curNode !== null) {
|
||||||
|
if (curNode.right !== null) helperStack.push(curNode.right);
|
||||||
|
helperStack.push(curNode);
|
||||||
|
helperStack.push(null);
|
||||||
|
if (curNode.left !== null) helperStack.push(curNode.left);
|
||||||
|
} else {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
res.push(curNode.val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 中序遍历(迭代法)
|
||||||
|
function inorderTraversal(root: TreeNode | null): number[] {
|
||||||
|
let helperStack: (TreeNode | null)[] = [];
|
||||||
|
let res: number[] = [];
|
||||||
|
let curNode: TreeNode | null;
|
||||||
|
if (root === null) return res;
|
||||||
|
helperStack.push(root);
|
||||||
|
while (helperStack.length > 0) {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
if (curNode !== null) {
|
||||||
|
if (curNode.right !== null) helperStack.push(curNode.right);
|
||||||
|
helperStack.push(curNode);
|
||||||
|
helperStack.push(null);
|
||||||
|
if (curNode.left !== null) helperStack.push(curNode.left);
|
||||||
|
} else {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
res.push(curNode.val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 后序遍历(迭代法)
|
||||||
|
function postorderTraversal(root: TreeNode | null): number[] {
|
||||||
|
let helperStack: (TreeNode | null)[] = [];
|
||||||
|
let res: number[] = [];
|
||||||
|
let curNode: TreeNode | null;
|
||||||
|
if (root === null) return res;
|
||||||
|
helperStack.push(root);
|
||||||
|
while (helperStack.length > 0) {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
if (curNode !== null) {
|
||||||
|
if (curNode.right !== null) helperStack.push(curNode.right);
|
||||||
|
helperStack.push(curNode);
|
||||||
|
helperStack.push(null);
|
||||||
|
if (curNode.left !== null) helperStack.push(curNode.left);
|
||||||
|
} else {
|
||||||
|
curNode = helperStack.pop()!;
|
||||||
|
res.push(curNode.val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
Reference in New Issue
Block a user