二叉樹相關面試題

2021-09-27 06:18:34 字數 2068 閱讀 1054

二叉樹的建立:

1.求二叉樹節點個數:

private static int count=0

public static void getsize(node root)

count++;

getsize(root.left);

getsize(root.right);

}public static int getsize2(node root)

int left=getsize2(root.left);

int right=getsize2(root.right);

return left+right+1;

}

2.求二叉樹葉子節點個數

public static int getleafsize(node root) 

if(root.left==null&&root.right==null)

int left=getleafsize(root.left);

int right=getleafsize(root.right);

return left+right;

}

3.求二叉樹深度

public static int getheight(node root) 

int left =getheight(root.left);

int right=getheight(root.right);

return math.max(left,right)+1;

}

4.查詢val所在的節點,若沒找到,返回null;找到則返回該節點的引用

public static node find(node root,int val) 

if(root.val==val)

node n=find(root.left, val);

if(n!=null)

n=find(root.right, val);

if(n!=null)

return null;

}

5.判斷是否是相同的二叉樹

public static boolean issametree(node p,node q) 

if(p==null||q==null)

return p.val==q.val&&issametree(p.left, q.left)&&issametree(p.right,q.right);

}

6.判斷兩個二叉樹是否是映象的

public boolean ismirrortree(node p,node q) 

if(p==null||q==null)

return p.val==q.val&&ismirrortree(p.left, q.left)&&ismirrortree(p.right, q.right);

}

6.給定兩個二叉樹,判斷其中乙個是否是另乙個的子樹

public static boolean issubtree(node p,node q) 

if(issametree(p, q))

if(issubtree(p.left, q))

if(issubtree(p.right,q))

return false;

}

7.判斷是否是平衡二叉樹

public static boolean isbalanced(node root) 

if(!isbalanced(root.left))

if(!isbalanced(root.right))

int left=getheight(root.left);

int right=getheight(root.right);

if(right-left>=-1&&right-left<=1)

return false;

}

二叉樹相關面試題

void treepreorderbyloop treenode root return void treeinorderbyloop treenode root 若cur為空,取棧頂元素,訪問,出棧 treenode top null int ret gettop stack,top if ret...

二叉樹的相關面試題

public class code01 dgmodel 先序遍歷 頭左右 public void preorderrecur node head system.out.println head.value preorderrecur head.left preorderrecur head.righ...

二叉樹面試題

1.求二叉樹節點個數 可以使用遞迴解決。將問題分解為求根節點 左子樹的節點數 右節點的節點數。實現 public size t size private size t size node root 2.求頁節點個數 頁節點 左右子樹都為空的節點被稱為頁節點,使用遞迴遍歷,當碰到乙個左右子樹為空的節點...