Leetcode 38 二叉樹的序列化和反序列化

2022-09-10 07:12:15 字數 805 閱讀 8866

題目:

思想:序列化實際上就是按照層次遍歷或先序遍歷的順序將各節點的值存放在乙個字串裡。

反序列化實際上就是把乙個字串儲存的乙個樹的層次遍歷或先序遍歷順序構建成乙個樹。

難點在於對於字串和分隔符的轉換和插入。

typecodecstruct

funcconstructor() codec 

}// serializes a tree to a single string.

func(this *codec) serialize(root *treenode) string

varresstring

vars*treenode

forlen(s)!=0else

}s= temp

temp= temp[0:0]

}returnstrings.join(res, ",")

}// deserializes your encoded data to tree.

func(this *codec) deserialize(data string) *treenode 

vars= strings.split(data,",")

varroot= &treenode{}

root.val,_= strconv.atoi(s[0])

varqueue=  *treenode

s= s[1:]

forlen(s)>0

}ifs[1]!="#"

}s= s[2:]

queue= queue[1:]

}returnroot

}

38 二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。解法1 遞迴版,首先,給出遞迴結束的條件,當樹為空時,深度為零,接下來,就是一層一層的遞迴了,比較左右子數的深度,其中值較大的作為當前子節點所在層的深度,則父節點的深度為...

38 二叉樹的深度

2.利用層序遍歷 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。classname solution description todo date 2019 12 22 12 36 author sonnsei public c...

38 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。示例 給定二叉樹 3,9,20,null,null,15,7 遞迴的方法,比較左邊路徑和右邊路徑哪邊最長,選擇最長的一邊路徑,加上root結點本身的長度。class solutio...