|
@@ -0,0 +1,34 @@
|
|
|
+/**
|
|
|
+ * Definition for a binary tree node.
|
|
|
+ * type TreeNode struct {
|
|
|
+ * Val int
|
|
|
+ * Left *TreeNode
|
|
|
+ * Right *TreeNode
|
|
|
+ * }
|
|
|
+ */
|
|
|
+func findBottomLeftValue(root *TreeNode) int {
|
|
|
+ if root == nil {
|
|
|
+ return -1
|
|
|
+ }
|
|
|
+ queue := make([]*TreeNode, 0)
|
|
|
+ queue = append(queue, root)
|
|
|
+ for len(queue) != 0 {
|
|
|
+ bl := queue[0].Val
|
|
|
+ nextLV := make([]*TreeNode, 0)
|
|
|
+ for len(queue) != 0 {
|
|
|
+ head := queue[0]
|
|
|
+ queue = queue[1:]
|
|
|
+ if head.Left != nil {
|
|
|
+ nextLV = append(nextLV, head.Left)
|
|
|
+ }
|
|
|
+ if head.Right != nil {
|
|
|
+ nextLV = append(nextLV, head.Right)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(nextLV) == 0 {
|
|
|
+ return bl
|
|
|
+ }
|
|
|
+ queue = nextLV
|
|
|
+ }
|
|
|
+ return -1
|
|
|
+}
|