Re: [閒聊] 每日leetcode 已回收

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/02/29 18:48), 編輯推噓2(202)
留言4則, 4人參與, 1年前最新討論串8/1548 (看更多)
每日連續解100天了,有點累 之後可能不會每天都解 1609. Even Odd Tree 給你一棵二元樹,請問是不是Even Odd Tree Even Odd Tree要滿足下面三個條件 1.root的level index為1,他的children level index為2,以此類推 2.所有level index是偶數的node,值必須是奇數,且從左到右要嚴格遞增 3.所有level index是奇數的node,值必須是偶數,且從左到右必須是嚴格遞減 思路: 用BFS去檢視每一層是否滿足條件 golanf code: /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func isEvenOddTree(root *TreeNode) bool { queue := []*TreeNode{} queue = append(queue, root) cnt := 1 level := 0 for len(queue) > 0 { for cnt > 1 { temp := queue[0] queue = queue[1:] if level%2 == 0 { if temp.Val >= queue[0].Val || temp.Val%2 != 1 { return false } } else { if temp.Val <= queue[0].Val || temp.Val%2 != 0 { return false } } if temp.Left != nil { queue = append(queue, temp.Left) } if temp.Right != nil { queue = append(queue, temp.Right) } cnt-- } if level%2 == 0 { if queue[0].Val%2 != 1 { return false } } else { if queue[0].Val%2 != 0 { return false } } if queue[0].Left != nil { queue = append(queue, queue[0].Left) } if queue[0].Right != nil { queue = append(queue, queue[0].Right) } queue = queue[1:] level++ cnt = len(queue) } return true } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.133.158 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1709203693.A.BFB.html

02/29 18:50, 1年前 , 1F
大師
02/29 18:50, 1F

02/29 18:58, 1年前 , 2F
100 大濕
02/29 18:58, 2F

02/29 19:03, 1年前 , 3F
我沒超過5天 我好爛
02/29 19:03, 3F

02/29 19:03, 1年前 , 4F
大師 看到跟你一樣這麼多if我就放心了
02/29 19:03, 4F
文章代碼(AID): #1bu63jlx (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bu63jlx (Marginalman)