leetcode 449, 二叉樹的復原

2021-09-25 20:50:05 字數 1177 閱讀 8237

自己太菜了 , 反序列化還是看了答案才寫出來

好多次碰到復原二叉樹的題目都不會做了, 寫一下

序列化一顆二叉樹: 採用先序遍曆法,將每個節點拼成乙個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 判定是否需...