題目要求:給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。【**於劍指offer】
該節點為父親的右子樹:
將上述分析情況進行整合:
**實現: 依照上述思路實現,得到了如下錯誤**(找父節點為左子樹、右節點的最左節點的迴圈有問題)
treelinknode*
getnext
(treelinknode* pnode)
while
(nextnode != parent-
>left);}
}else
dowhile
(pnode-
>left !=
null);
return nextnode;
}
此種方法容易出現問題:
大佬們採用的排除法完美地解決了以上問題:有返回值的各個情況羅列出來,不符合要求的全部返回為空。
**修正
treelinknode*
getnext
(treelinknode* pnode)
//遍歷的最後乙個元素的情況較複雜,無法判斷,所以最後返回空比較好,有節點返回的情況下直接返回節點
while
(pnode-
>next !=
null
)return
null
;}
拓展思考 Python opencv 二 畫素運算 二
使用工具python3.x 使用庫numpy opencv,1.cv.bitwise and s1,s2 s1,s2為cv.imread函式返回的物件,表示將s1和s2的畫素進行邏輯與運算,函式會返回乙個物件。可以通過cv.imshow顯示出進行直觀感受。2.cv.bitwise or s1,s2 ...
大二第二學期周學習進度總結(二)
本週檢測的是從文件中讀取隨機數並得到最大連續子陣列,難度並不是很大,主要是需要使用biginteger來進行運算解決問題,我經常有這樣的感覺,就是很多情況下已經有了很成熟的技術,但是我們這些初學者僅僅是因為不知道,所以導致我們不知道這些方法如何解決,這個問題在課堂上困住了不少人,也許不少人是因為懶得...
二叉堆實現二
堆可以視為一棵完全二叉樹,樹的每一層都是被填滿的,最後一層可能除外,所以堆可以用陣列來表示。對於陣列中任意位置 i上的元素,其左兒子在位置 i 2 1 其右兒子在位置 i 2 2 上,其父節點在位置 i 1 2 1處。二叉堆有兩種 最大堆和最小堆。最大堆中,除根結點外 其無父結點 每個結點的關鍵字都...