劍指offer系列 57 二叉樹的下乙個節點

2021-10-24 12:25:29 字數 840 閱讀 7005

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。

1、最傻的方法

2、更好的方法

/**

* 當前節點與下一節點的關係

* --當前節點有右子樹,右子樹的最左節點即是下乙個節點

* --當前節點沒有右子樹,找作為左孩子的父節點

*/public treelinknode getnext

(treelinknode pnode)

return

findfatherasleftchild

(pnode);}

public treelinknode findleft

(treelinknode node)

treelinknode p=node;

while

(p.left!=null)

return p;

}/**

* -cur作為父節點的左孩子

* --返回父節點

* -cur作為父節點的右孩子

* --向上走,判斷當前節點是否為左孩子,若是的話返回當前節點父節點,若不是,繼續向上走,直到走到root節點。

*/public treelinknode findfatherasleftchild

(treelinknode node)

treelinknode cur=node;

while

(cur!=null)

else

}else

}return null;

}

劍指offer系列 二叉樹的深度

題目描述 輸入一棵二叉樹,求其深度 樹的深度定義為 從根節點到葉子節點的路徑長度的最大值 示例 分析 對每個節點而言,以該節點為根節點的樹的深度為左子樹和右子樹深度的較大值加1.因此用遞迴可以很容易的實現 int depth treenode root 分析 同樣可以用遞迴來實現。為了使每個節點只遍...

劍指offer 二叉樹 二叉樹搜尋樹

package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...

劍指offer 二叉樹 二叉樹的映象

操作給定的二叉樹,將其變換為源二叉樹的映象。二叉樹的映象定義 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 51,交換左右子樹 2,遞迴交換左右子樹的左右子節點 package offertest title mirror description author 田...