麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

Leetcode 112. Path Sum

2019-11-14 12:00:36
字體:
供稿:網(wǎng)友

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

For example: Given the below binary tree and sum = 22,

5 / / 4 8 / / / 11 13 4 / / / 7 2 1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

s思路: 1. 遍歷。每次減,如果到leaf,結(jié)果為0,則說明有這樣的path存在。要一條path一條的試,所以用recursive的方式,dfs。 2. 如何用iterative呢?具體說,如何用iterative來實現(xiàn)PRe-order?先stack中一路向左保存所有根節(jié)點,然后取出頭上的根節(jié)點作為cur指針,可以肯定的是cur指針沒有左孩子,先判斷是否有右孩子,沒有右孩子則可以彈出stack頂上指針;有右孩子,則把cur=cur->right。這里需要區(qū)別和in-order不同的地方:在in-order中,cur取出之后,直接彈出,所以不需要用pre來存之前訪問過的地方,而在pre-order中,有右孩子,則不能彈出stack的指針,因為計算path sum時還需要這個指針對應的值。為了防止重復訪問,比如:當右孩子訪問之后,又重新回到這個節(jié)點,此時如果判斷是否有右孩子的話,就會重復訪問右孩子。為了避免重復,可以在用一個pre指針,每次在訪問節(jié)點后,把pre=cur,然后判斷一次cur->right!=pre,即可避免!

//方法1:recursive.仔細分辨,是pre-order:先訪問中間,然后左邊,最后右邊。class Solution {public: bool haspathSum(TreeNode* root, int sum) { if(!root) return false; if(!root->left&&!root->right) return root->val==sum; if(hasPathSum(root->left,sum-root->val)) return true; return hasPathSum(root->right,sum-root->val); }};//方法2:iterative:stack實現(xiàn)。class Solution {public: bool hasPathSum(TreeNode* root, int sum) { stack<TreeNode*> ss; int path=0; TreeNode* cur=root, *pre=NULL; while(cur||!ss.empty()){ while(cur){//先‘中’,‘左’ path+=cur->val; ss.push(cur); cur=cur->left; } cur=ss.top(); if(!cur->left&&!cur->right&&path==sum) return true; if(cur->right&&cur->right!=pre){//后‘右’ cur=cur->right; }else{ pre=cur; ss.pop();//當cur沒有右孩子或者右孩子已經(jīng)訪問,才能彈出cur //這和in-order的處理方式就不同,在in-order中,cur取出之后,直接彈出,所以不需要用pre來存之前訪問過的地方! path-=cur->val; cur=NULL; } } return false; }};
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜视频在线 | 欧美一a一片一级一片 | 国产一级免费不卡 | 中文字幕亚洲欧美 | 日本成人午夜视频 | 久久国产成人午夜av浪潮 | 久久精品日韩一区 | 亚洲影视在线观看 | 免费看一级毛片欧美 | 日韩精品一区二区三区中文 | 久草高清视频 | 久久国产成人精品国产成人亚洲 | 羞羞电影在线观看 | 91av在线免费 | 91麻豆精品国产91久久久无需广告 | 久久福利小视频 | 男女做性免费网站 | 国产xxxx免费 | 九九热免费视频在线观看 | 成人精品久久 | 久久一区二区三区av | 亚洲极色| 三级国产三级在线 | 久久久久99精品 | 国产午夜精品久久久久久免费视 | 久久国产精品久久久久久电车 | 成人国产精品一区二区毛片在线 | 久久亚洲国产午夜精品理论片 | 欧美日韩免费在线观看视频 | 亚洲一级毛片 | 日韩视频区 | 欧美 国产 亚洲 卡通 综合 | 九九热精品免费视频 | 国产精品一区自拍 | 国产午夜精品久久久 | 99ri在线| 免费午夜视频 | 久久久久97国产精 | 欧美成人精品欧美一级乱黄 | 奇米888一区二区三区 | 成人午夜视频在线观看免费 |