Leetcode - Binary Tree Right Side View

My code:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        ArrayList<Integer> view = new ArrayList<Integer>();
        if (root == null)
            return view;
        Queue<TreeNode> q = new LinkedList<TreeNode>();
        q.offer(root);
        while (!q.isEmpty()) {
            int levelSize = q.size();
            for (int i = 0; i < levelSize; i++) {
                TreeNode temp = q.poll();
                if (i == 0)
                    view.add(temp.val);
                if (temp.right != null)
                    q.offer(temp.right);
                if (temp.left != null)
                    q.offer(temp.left);
            }
        }
        return view;
    }
}

My test result:

Paste_Image.png

這道題目廉沮,沒(méi)做出來(lái)斟或。看了答案后,
感覺(jué)真的是少欺,算法是融入在血液的。刷題馋贤,培養(yǎng)的赞别,就是這么一種思想。
這種思想配乓,我在zigzag中也碰到過(guò)仿滔。
真的是,隨心所欲犹芹,不逾矩崎页。
想法在心中,題目在變腰埂,想法不會(huì)變飒焦。
而我現(xiàn)在是,題目不變屿笼,想法在不斷地變牺荠。無(wú)法找到準(zhǔn)確的方法來(lái)分析題目。
看到一道題目驴一,腦子還是一片空白休雌。

這道題目,我怎么就沒(méi)有想到肝断,拿隊(duì)列來(lái)做呢杈曲。然后采用zigzag的方式遍歷。
http://www.programcreek.com/2014/04/leetcode-binary-tree-right-side-view-java/
看了這篇博客就懂了胸懈。

**
總結(jié): queue來(lái)遍歷tree
**

Anyway, Good luck, Richardo!

My code:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        ArrayList<Integer> ret = new ArrayList<Integer>();
        if (root == null)
            return ret;
        Queue<TreeNode> q = new LinkedList<TreeNode>();
        q.offer(root);
        while (!q.isEmpty()) {
            int size = q.size();
            for (int i = 0; i < size; i++) {
                TreeNode curr = q.poll();
                if (i == 0) {
                    ret.add(curr.val);
                }
                if (curr.right != null)
                    q.offer(curr.right);
                if (curr.left != null)
                    q.offer(curr.left);
            }
        }
        return ret;
    }
}

不難担扑。沒(méi)什么好總結(jié)的。

Anyway, Good luck, Richardo!

我用的還是老方法箫荡。沒(méi)什么好說(shuō)的魁亦。
然后網(wǎng)上看到別人用了這個(gè)方法,感覺(jué)挺巧妙的羔挡。

Their code:

public class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> result = new ArrayList<Integer>();
        rightView(root, result, 0);
        return result;
    }
    
    public void rightView(TreeNode curr, List<Integer> result, int currDepth){
        if(curr == null){
            return;
        }
        if(currDepth == result.size()){
            result.add(curr.val);
        }
        
        rightView(curr.right, result, currDepth + 1);
        rightView(curr.left, result, currDepth + 1);
        
    }
}

reference:
https://discuss.leetcode.com/topic/11768/my-simple-accepted-solution-java/2

感覺(jué)bfs 能做的洁奈,dfs都能做间唉,只是需要有個(gè)容器來(lái)暫存狀態(tài)。

Anyway,Good luck, Richardo! -- 09/07/2016

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末利术,一起剝皮案震驚了整個(gè)濱河市呈野,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌印叁,老刑警劉巖被冒,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異轮蜕,居然都是意外死亡昨悼,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)跃洛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)率触,“玉大人,你說(shuō)我怎么就攤上這事汇竭〈谢龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵细燎,是天一觀(guān)的道長(zhǎng)两曼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)玻驻,這世上最難降的妖魔是什么悼凑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮击狮,結(jié)果婚禮上佛析,老公的妹妹穿的比我還像新娘。我一直安慰自己彪蓬,他們只是感情好寸莫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著档冬,像睡著了一般膘茎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酷誓,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天披坏,我揣著相機(jī)與錄音,去河邊找鬼盐数。 笑死棒拂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帚屉,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谜诫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了攻旦?” 一聲冷哼從身側(cè)響起喻旷,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牢屋,沒(méi)想到半個(gè)月后且预,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烙无,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年锋谐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皱炉。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怀估,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出合搅,到底是詐尸還是另有隱情,我是刑警寧澤歧蕉,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布灾部,位于F島的核電站,受9級(jí)特大地震影響惯退,放射性物質(zhì)發(fā)生泄漏赌髓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一催跪、第九天 我趴在偏房一處隱蔽的房頂上張望锁蠕。 院中可真熱鬧,春花似錦懊蒸、人聲如沸荣倾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舌仍。三九已至,卻和暖如春通危,著一層夾襖步出監(jiān)牢的瞬間铸豁,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工菊碟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留节芥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓逆害,卻偏偏與公主長(zhǎng)得像头镊,于是被迫代替她去往敵國(guó)和親增炭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容