自己太菜了 , 反序列化還是看了答案才寫出來
好多次碰到復原二叉樹的題目都不會做了, 寫一下
序列化一顆二叉樹: 採用先序遍曆法,將每個節點拼成乙個string,比較簡單
反序列化一顆二叉樹(還得看答案。。。。。好菜啊):
首先第乙個值肯定是root , 比root 大的第乙個值是root.right, 比root小的第乙個值是root.left
左 8 7 9 右 20 15 22
接下來可以寫遞迴方程 繼續
左 8 右 20
左 7 右 9 左15 右 22
return root 即可
答案中 比root 小的存到乙個queue 中, 比root大的存到乙個queue中
/*** definition for a binary tree node.
* public class treenode
* }*/
public class codec
// decodes your encoded data to tree.
public treenode deserialize(string data)
return getnode(q);
}private treenode getnode(queueq)
root.left=getnode(smallerqueue);
root.right=getnode(q);
return root;}}
// your codec object will be instantiated and called as such:
// codec codec = new codec();
// codec.deserialize(codec.serialize(root));
leetcode 二叉樹 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...
LeetCode (二叉樹)反轉二叉樹
遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...
leetcode 二叉樹 二叉樹的層次遍歷
給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...