mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 14:18:20 +08:00 
			
		
		
		
	* Replace 结点 with 节点 Update the footnotes in the figures * Update mindmap * Reduce the size of the mindmap.png
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
/**
 | 
						|
 * File: TreeNode.swift
 | 
						|
 * Created Time: 2023-01-02
 | 
						|
 * Author: nuomi1 (nuomi1@qq.com)
 | 
						|
 */
 | 
						|
 | 
						|
public class TreeNode {
 | 
						|
    public var val: Int // 节点值
 | 
						|
    public var height: Int // 节点高度
 | 
						|
    public var left: TreeNode? // 左子节点引用
 | 
						|
    public var right: TreeNode? // 右子节点引用
 | 
						|
 | 
						|
    public init(x: Int) {
 | 
						|
        val = x
 | 
						|
        height = 0
 | 
						|
    }
 | 
						|
 | 
						|
    public static func listToTree(list: [Int]) -> TreeNode? {
 | 
						|
        let size = list.count
 | 
						|
        if size == 0 {
 | 
						|
            return nil
 | 
						|
        }
 | 
						|
        let root = TreeNode(x: list[0])
 | 
						|
        var queue: [TreeNode] = [root]
 | 
						|
        var i = 0
 | 
						|
        while !queue.isEmpty {
 | 
						|
            let node = queue.removeFirst()
 | 
						|
            i += 1
 | 
						|
            if i >= size {
 | 
						|
                break
 | 
						|
            }
 | 
						|
            node.left = TreeNode(x: list[i])
 | 
						|
            queue.append(node.left!)
 | 
						|
            i += 1
 | 
						|
            if i >= size {
 | 
						|
                break
 | 
						|
            }
 | 
						|
            node.right = TreeNode(x: list[i])
 | 
						|
            queue.append(node.right!)
 | 
						|
        }
 | 
						|
        return root
 | 
						|
    }
 | 
						|
}
 |