成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

leetcode331. Verify Preorder Serialization of a Bi

weapon / 703人閱讀

摘要:如果我們從右往左看先序遍歷,就知道后兩個(gè)節(jié)點(diǎn)如果遇到第三個(gè)節(jié)點(diǎn),則該節(jié)點(diǎn)就應(yīng)當(dāng)是這兩個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)。如果在遍歷的過程中根節(jié)點(diǎn)數(shù)量小于,則說明這棵樹有問題。而如果遍歷結(jié)束之后,剩下的根節(jié)點(diǎn)數(shù)不等于,也說明這個(gè)先序遍歷存在問題。

題目要求
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node"s value. If it is a null node, we record using a sentinel value such as #.

     _9_
    /   
   3     2
  /    / 
 4   1  #  6
/  /    / 
# # # #   # #

For example, the above binary tree can be serialized to the string "9,3,4,#,#,1,#,#,2,#,6,#,#", where # represents a null node.

Given a string of comma separated values, verify whether it is a correct preorder traversal serialization of a binary tree. Find an algorithm without reconstructing the tree.

Each comma separated value in the string must be either an integer or a character "#" representing null pointer.

You may assume that the input format is always valid, for example it could never contain two consecutive commas such as "1,,3".

Example 1:

Input: "9,3,4,#,#,1,#,#,2,#,6,#,#"
Output: true
Example 2:

Input: "1,#"
Output: false
Example 3:

Input: "9,#,#,1"
Output: false
思路和代碼

我們知道,任何兩個(gè)節(jié)點(diǎn)都可以和位于左邊的非葉節(jié)點(diǎn)構(gòu)成一棵有三個(gè)節(jié)點(diǎn)的樹。如果我們從右往左看先序遍歷,就知道后兩個(gè)節(jié)點(diǎn)如果遇到第三個(gè)節(jié)點(diǎn),則該節(jié)點(diǎn)就應(yīng)當(dāng)是這兩個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)。我們可以將每一個(gè)#看做一個(gè)根節(jié)點(diǎn),每遇到#就將記錄的根節(jié)點(diǎn)數(shù)加一,當(dāng)遇到數(shù)字時(shí),則代表該數(shù)字應(yīng)當(dāng)能夠和兩個(gè)節(jié)點(diǎn)構(gòu)成新的樹,并且該數(shù)字成為新的根節(jié)點(diǎn),因此需要將根節(jié)點(diǎn)數(shù)量減一。如果在遍歷的過程中根節(jié)點(diǎn)數(shù)量小于1,則說明這棵樹有問題。而如果遍歷結(jié)束之后,剩下的根節(jié)點(diǎn)數(shù)不等于1,也說明這個(gè)先序遍歷存在問題。

    public boolean isValidSerialization(String preorder) {
        if(preorder==null) return false;
        if(preorder.length() == 0) return true;
        String[] nodes = preorder.split(",");
        int nodeCount = 0;
        for(int i = nodes.length - 1; i >= 0 ; i--) {
            if(nodes[i].equals("#")) {
                nodeCount++;
            } else {
                nodeCount--;
            }
            if(nodeCount <= 0) return false;
        }
        return nodeCount == 1;
    }


想要了解更多開發(fā)技術(shù),面試教程以及互聯(lián)網(wǎng)公司內(nèi)推,歡迎關(guān)注我的微信公眾號!將會不定期的發(fā)放福利哦~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72418.html

相關(guān)文章

  • LeetCode 331. Verify Preorder Serialization of a B

    摘要:如果它是一個(gè)空節(jié)點(diǎn),我們可以使用一個(gè)標(biāo)記值記錄,例如。例如,上面的二叉樹可以被序列化為字符串,其中代表一個(gè)空節(jié)點(diǎn)。每個(gè)以逗號分隔的字符或?yàn)橐粋€(gè)整數(shù)或?yàn)橐粋€(gè)表示指針的。如果滿足前序遍歷,那么最后棧中有且僅有一個(gè)元素,且是。 Description One way to serialize a binary tree is to use pre-order traversal. When ...

    張巨偉 評論0 收藏0
  • Verify Preorder Serialization of a Binary Tree

    摘要:令,那么從累加會一直保持正,最后為。從左往右比較好理解,因?yàn)榭偸强偟阶笤俚接?,的總是的,所以一定是保持。注意從開始,因?yàn)闆]有。 Verify Preorder Serialization of a Binary Tree 題目鏈接:https://leetcode.com/problems... recursion,用個(gè)全局的index: public class Solution {...

    melody_lql 評論0 收藏0
  • leetcode449. Serialize and Deserialize BST

    摘要:題目要求將二叉搜索樹序列化和反序列化,序列化是指將樹用字符串的形式表示,反序列化是指將字符串形式的樹還原成原來的樣子。假如二叉搜索樹的節(jié)點(diǎn)較多,該算法將會占用大量的額外空間。 題目要求 Serialization is the process of converting a data structure or object into a sequence of bits so that...

    Honwhy 評論0 收藏0
  • [Leetcode] Verify Preorder Sequence in Binary Sear

    摘要:如果繼續(xù)降序,說明又向左走了,這樣等到下次向右走得時(shí)候也要再次更新最小值。這樣,序列無效的條件就是違反了這個(gè)最小值的限定。我們同樣可以用本題的方法解,不過是從數(shù)組的后面向前面遍歷,因?yàn)樵诤竺媪?。棧的增長方向也是從高向低了。 Verify Preorder Sequence in Binary Search Tree Given an array of numbers, verify ...

    未東興 評論0 收藏0
  • Serialize and Deserialize Binary Tree &amp; BST

    摘要:思路理論上說所有遍歷的方法都可以。但是為了使和的過程都盡量最簡單,是不錯(cuò)的選擇。用作為分隔符,來表示。復(fù)雜度代碼思路這道題和之前不同,一般的樹變成了,而且要求是。還是可以用,還是需要分隔符,但是就不需要保存了。 297. Serialize and Deserialize Binary Tree Serialization is the process of converting a...

    eccozhou 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<