mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge pull request #1064 from xiaofei-2020/tree5
添加(0102.二叉树的层序遍历.md - 共十道题):增加typescript版本
This commit is contained in:
@ -246,7 +246,35 @@ var levelOrder = function(root) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function levelOrder(root: TreeNode | null): number[][] {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let res: number[][] = [];
|
||||||
|
let tempArr: number[] = [];
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
let curNode: TreeNode;
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
curNode = helperQueue.shift()!;
|
||||||
|
tempArr.push(curNode.val);
|
||||||
|
if (curNode.left !== null) {
|
||||||
|
helperQueue.push(curNode.left);
|
||||||
|
}
|
||||||
|
if (curNode.right !== null) {
|
||||||
|
helperQueue.push(curNode.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res.push(tempArr);
|
||||||
|
tempArr = [];
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func levelOrder(_ root: TreeNode?) -> [[Int]] {
|
func levelOrder(_ root: TreeNode?) -> [[Int]] {
|
||||||
var res = [[Int]]()
|
var res = [[Int]]()
|
||||||
@ -454,7 +482,31 @@ var levelOrderBottom = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function levelOrderBottom(root: TreeNode | null): number[][] {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resArr: number[][] = [];
|
||||||
|
let tempArr: number[] = [];
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
tempArr.push(tempNode.val);
|
||||||
|
if (tempNode.left !== null) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right !== null) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
resArr.push(tempArr);
|
||||||
|
tempArr = [];
|
||||||
|
}
|
||||||
|
return resArr.reverse();
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func levelOrderBottom(_ root: TreeNode?) -> [[Int]] {
|
func levelOrderBottom(_ root: TreeNode?) -> [[Int]] {
|
||||||
var res = [[Int]]()
|
var res = [[Int]]()
|
||||||
@ -657,7 +709,28 @@ var rightSideView = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function rightSideView(root: TreeNode | null): number[] {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resArr: number[] = [];
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
if (i === length - 1) resArr.push(tempNode.val);
|
||||||
|
if (tempNode.left !== null) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right !== null) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resArr;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func rightSideView(_ root: TreeNode?) -> [Int] {
|
func rightSideView(_ root: TreeNode?) -> [Int] {
|
||||||
var res = [Int]()
|
var res = [Int]()
|
||||||
@ -868,7 +941,32 @@ var averageOfLevels = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function averageOfLevels(root: TreeNode | null): number[] {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resArr: number[] = [];
|
||||||
|
let total: number = 0;
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
let length = helperQueue.length;
|
||||||
|
for (let i = 0; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
total += tempNode.val;
|
||||||
|
if (tempNode.left) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
resArr.push(total / length);
|
||||||
|
total = 0;
|
||||||
|
}
|
||||||
|
return resArr;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func averageOfLevels(_ root: TreeNode?) -> [Double] {
|
func averageOfLevels(_ root: TreeNode?) -> [Double] {
|
||||||
var res = [Double]()
|
var res = [Double]()
|
||||||
@ -1092,7 +1190,30 @@ var levelOrder = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function levelOrder(root: Node | null): number[][] {
|
||||||
|
let helperQueue: Node[] = [];
|
||||||
|
let resArr: number[][] = [];
|
||||||
|
let tempArr: number[] = [];
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
let curNode: Node;
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
curNode = helperQueue.shift()!;
|
||||||
|
tempArr.push(curNode.val);
|
||||||
|
helperQueue.push(...curNode.children);
|
||||||
|
}
|
||||||
|
resArr.push(tempArr);
|
||||||
|
tempArr = [];
|
||||||
|
}
|
||||||
|
return resArr;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func levelOrder(_ root: Node?) -> [[Int]] {
|
func levelOrder(_ root: Node?) -> [[Int]] {
|
||||||
var res = [[Int]]()
|
var res = [[Int]]()
|
||||||
@ -1272,7 +1393,34 @@ var largestValues = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function largestValues(root: TreeNode | null): number[] {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resArr: number[] = [];
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
let max: number = 0;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
if (i === 0) {
|
||||||
|
max = tempNode.val;
|
||||||
|
} else {
|
||||||
|
max = max > tempNode.val ? max : tempNode.val;
|
||||||
|
}
|
||||||
|
if (tempNode.left) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
resArr.push(max);
|
||||||
|
}
|
||||||
|
return resArr;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func largestValues(_ root: TreeNode?) -> [Int] {
|
func largestValues(_ root: TreeNode?) -> [Int] {
|
||||||
var res = [Int]()
|
var res = [Int]()
|
||||||
@ -1463,6 +1611,31 @@ var connect = function(root) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
```
|
```
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function connect(root: Node | null): Node | null {
|
||||||
|
let helperQueue: Node[] = [];
|
||||||
|
let preNode: Node, curNode: Node;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
if (i === 0) {
|
||||||
|
preNode = helperQueue.shift()!;
|
||||||
|
} else {
|
||||||
|
curNode = helperQueue.shift()!;
|
||||||
|
preNode.next = curNode;
|
||||||
|
preNode = curNode;
|
||||||
|
}
|
||||||
|
if (preNode.left) helperQueue.push(preNode.left);
|
||||||
|
if (preNode.right) helperQueue.push(preNode.right);
|
||||||
|
}
|
||||||
|
preNode.next = null;
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
go:
|
go:
|
||||||
|
|
||||||
```GO
|
```GO
|
||||||
@ -1689,6 +1862,31 @@ var connect = function(root) {
|
|||||||
return root;
|
return root;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function connect(root: Node | null): Node | null {
|
||||||
|
let helperQueue: Node[] = [];
|
||||||
|
let preNode: Node, curNode: Node;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
if (i === 0) {
|
||||||
|
preNode = helperQueue.shift()!;
|
||||||
|
} else {
|
||||||
|
curNode = helperQueue.shift()!;
|
||||||
|
preNode.next = curNode;
|
||||||
|
preNode = curNode;
|
||||||
|
}
|
||||||
|
if (preNode.left) helperQueue.push(preNode.left);
|
||||||
|
if (preNode.right) helperQueue.push(preNode.right);
|
||||||
|
}
|
||||||
|
preNode.next = null;
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
go:
|
go:
|
||||||
|
|
||||||
```GO
|
```GO
|
||||||
@ -1933,7 +2131,28 @@ var maxDepth = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function maxDepth(root: TreeNode | null): number {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resDepth: number = 0;
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
resDepth++;
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
if (tempNode.left) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resDepth;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func maxDepth(_ root: TreeNode?) -> Int {
|
func maxDepth(_ root: TreeNode?) -> Int {
|
||||||
guard let root = root else {
|
guard let root = root else {
|
||||||
@ -2130,7 +2349,29 @@ var minDepth = function(root) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function minDepth(root: TreeNode | null): number {
|
||||||
|
let helperQueue: TreeNode[] = [];
|
||||||
|
let resMin: number = 0;
|
||||||
|
let tempNode: TreeNode;
|
||||||
|
if (root !== null) helperQueue.push(root);
|
||||||
|
while (helperQueue.length > 0) {
|
||||||
|
resMin++;
|
||||||
|
for (let i = 0, length = helperQueue.length; i < length; i++) {
|
||||||
|
tempNode = helperQueue.shift()!;
|
||||||
|
if (tempNode.left === null && tempNode.right === null) return resMin;
|
||||||
|
if (tempNode.left !== null) helperQueue.push(tempNode.left);
|
||||||
|
if (tempNode.right !== null) helperQueue.push(tempNode.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resMin;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
Swift:
|
Swift:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
func minDepth(_ root: TreeNode?) -> Int {
|
func minDepth(_ root: TreeNode?) -> Int {
|
||||||
guard let root = root else {
|
guard let root = root else {
|
||||||
|
Reference in New Issue
Block a user