題目
二叉樹的層次遍歷
給定一個(gè)二叉樹赠堵,返回其按層次遍歷的節(jié)點(diǎn)值。 (即逐層地,從左到右訪問所有節(jié)點(diǎn))骑歹。
示例:
給定二叉樹: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其層次遍歷結(jié)果:
[
[3],
[9,20],
[15,7]
]
代碼:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution {
func levelOrder(_ root: TreeNode?) -> [[Int]] {
var intList:[[Int]] = [[Int]]()
var nodeList:[TreeNode] = [TreeNode]()
guard let root = root else {
return intList
}
nodeList.append(root)
while nodeList.isEmpty == false {
var count = nodeList.count
var temp = [Int]()
while count != 0 {
let node = nodeList.removeFirst()
temp.append(node.val)
if node.left != nil {
nodeList.append(node.left!)
}
if node.right != nil {
nodeList.append(node.right!)
}
count = count - 1
}
intList.append(temp)
}
return intList
}
}