LeetCode 513 Tìm giá trị nút góc dưới bên trái của cây nhị phân - win 789 club

| Jan 29, 2025 min read

Ngày 31 tháng 10 năm 2019 - Lĩnh vực Máy tính 1. Mô tả bài toán Cho một cây nhị phân, hãy tìm giá trị của nút nằm ở hàng cuối cùng và phía bên trái nhất. Lưu ý: Bạn có thể giả định rằng cây nhị phân được đưa ra không rỗng. Ví dụ 1: Đầu vào:

  2
  / \
 1   3

Đầu ra: 1

Ví dụ 2: Đầu vào:

    1
    / \
   2   3
   /   / \
  4   5   6
      /
     7

Đầu ra: 7

Nguồn gốc bài w9bet register toán: LeetCode

2. Cách tiếp cận giải quyết Sử dụng phương pháp duyệt theo tầng (level-order traversal) để đi qua từng nút trong cây nhị phân. Khi lần đầu tiên bước vào một tầng mới, ghi lại độ sâu hiện tại và giá cwin222 trị của nút đầu tiên trong tầng đó. Sau khi hoàn thành quá trình duyệt, ta sẽ thu được độ sâu lớn nhất cùng với giá trị của nút đầu tiên thuộc tầng này, chính là kết quả cần tìm.

3. Mã nguồn thực hiện bằng Golang

func findBottomLeftValue(root *TreeNode) int {
    nodes := []*TreeNode{root}
    maxDepth := -1
    val := 0
    for depth := 0; len(nodes) > 0; depth++ {
        copy := nodes[:]
        nodes = []*TreeNode{}
        for _, node := range copy {
            if depth > maxDepth {
                maxDepth = depth
                val = node.Val
            }
            if nil != node.Left {
                nodes = append(nodes, node.Left)
            }
            if nil != node.Right {
                nodes = append(nodes, node.Right)
            }
        }
    }
    return val
}

Từ khóa: #Golang #ThuậtToán