diff --git a/README.md b/README.md
index bdd8f80..1f8c7e5 100644
--- a/README.md
+++ b/README.md
@@ -359,11 +359,16 @@ LeetCode 与 LintCode 解题记录。此为个人练习仓库,代码中对重
- LeetCode 572. 另一个树的子树
- LintCode 1165. 另一个树的子树
-- [二叉树的层序遍历](src/tree/binary-tree-right-side-view.js)
+- [二叉树的层序遍历](src/tree/binary-tree-level-order-traversal.js)
- LeetCode 102. 二叉树的层序遍历
- LintCode 69. 二叉树的层次遍历
+- [二叉树的层次遍历 II](src/tree/binary-tree-level-order-traversal-ii.js)
+
+ - LeetCode 107. 二叉树的层次遍历 II
+ - LintCode 70. 二叉树的层次遍历 II
+
## 链表
- [合并K个排序链表](src/list/merge-k-sorted-lists.js)
diff --git a/src/tree/binary-tree-level-order-traversal-ii.js b/src/tree/binary-tree-level-order-traversal-ii.js
new file mode 100644
index 0000000..3393ae6
--- /dev/null
+++ b/src/tree/binary-tree-level-order-traversal-ii.js
@@ -0,0 +1,28 @@
+/**
+ * Definition for a binary tree node.
+ * function TreeNode(val) {
+ * this.val = val;
+ * this.left = this.right = null;
+ * }
+ */
+/**
+ * @param {TreeNode} root
+ * @return {number[][]}
+ */
+export const levelOrder = function (root) {
+ const res = []
+ const queue = [root]
+ while (queue.length) { // BFS
+ const tmp = []
+ const leave = queue.length // 记录这一层有几个
+ for (let i = 0; i < leave; i++) { // 一次性把固定个数的队列执行完
+ const node = queue.shift()
+ if (node && node.left) queue.push(node.left)
+ if (node && node.right) queue.push(node.right)
+ if (node) tmp.push(node.val)
+ }
+ if (tmp.length) res.unshift(tmp)
+ }
+
+ return res
+}
diff --git a/test/tree/binary-tree-level-order-traversal-ii.test.js b/test/tree/binary-tree-level-order-traversal-ii.test.js
new file mode 100644
index 0000000..de225d4
--- /dev/null
+++ b/test/tree/binary-tree-level-order-traversal-ii.test.js
@@ -0,0 +1,14 @@
+import { levelOrder } from '../../src/tree/binary-tree-level-order-traversal-ii'
+import Tree from './Tree.js'
+
+test('二叉树的层序遍历 II', () => {
+ const source = [3, 9, 20, null, null, 15, 7]
+ expect(levelOrder(Tree.arrToTree(source))).toEqual([
+ [15, 7],
+ [9, 20],
+ [3]
+ ])
+
+ const source1 = []
+ expect(levelOrder(Tree.arrToTree(source1))).toEqual([])
+})