輸入一顆二叉樹的根節點和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。(注意: 在返回值的list中,陣列長度大的陣列靠前)
又題目可知,正確的路徑必須滿足兩個條件:一是路勁的節點的值之和等於給定的值,二是路勁必須是根節點到葉子節點。這裡我使用了二叉樹的非遞迴前序遍歷,利用棧來儲存路徑。
using system.collections.generic;
/*public class treenode
}*/class
solution
stack stack=
newstack
<
treenode
>()
; stack stack2=
newstack
<
treenode
>()
;while
(root!=
null
|| stack.count>0)
root=root.left;
}else
if(stack.count>0)
else
if(stack2.
peek()
!= root)
root=root.right;}}
return list;
}public list<
int>
addvalue
(stack stack1)
while
(stack2.count>0)
return list;
}}
25 二叉樹中和為某值的路徑
題目描述 輸入一顆二叉樹和乙個整數,列印出二叉樹中結點值的和為輸入整數 的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一 條路徑。思路 先儲存根節點,然後分別遞迴在左右子樹中找目標值,若找到即到達葉子 節點,列印路徑中的值 實現 private arraylist lista...
演算法 二叉樹中和為某一值的路徑
要求 輸入一顆二叉樹和乙個整數,列印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。程式 struct treenode class solution return result private void findpathres tree...
二叉樹中和為某一值的路徑
include include using namespace std struct node void find path node r,int exceptedsum,vector path,int cursum node buildbtree int a,int i void preorder...