Fourth Exercise 二叉樹的下乙個結點

2021-09-05 08:54:28 字數 831 閱讀 5333

題目要求:給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。【**於劍指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處。二叉堆有兩種 最大堆和最小堆。最大堆中,除根結點外 其無父結點 每個結點的關鍵字都...