找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 妮可
收起左侧

[Facebook] Facebook Interview Question for

[复制链接]

1194

主题

191

精华

3785

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3785
发表于 9-10-2018 08:38 AM | 显示全部楼层

A code finding the next leave. o$ y2 @9 c; q% k' s% ?& l, P

/ s8 X" Z7 C# B+ D! D0 ^3 GPITM nxtleave(PITM p)
2 f( b3 r  M( l0 q{
. A3 A: y  S( p) G) v PITM d;7 i' q+ M8 J$ V. q
 if((p->l==0)&&(p->r==0)) return p;4 J8 L) x% `1 X9 w$ s
 if(p->l)8 |8 K1 v" [" Z6 q! ?8 r/ y/ a: z: _5 Z
 {
! \7 V& b$ F3 |! K- e5 O1 W+ x; |! M   if(p->r)  q' r3 {# {2 y
	push(p->r);
$ j% @) {5 k6 V. q; n   d=nxtleave(p->l);
( q" j, R' U/ j$ i# @/ ~   if(d!=0)0 ]: T2 m/ x% ^, ~9 k
    return d;
: ]; j% i$ [! a% ~3 c) V } else # i" B1 j6 H( j1 V! U9 {3 V
 if(p->r)
- \4 ^+ x4 Z# J {
  c$ A6 \) w' F1 Z   d=nxtleave(p->r);
! r# e* D% c6 T- x6 G, Y   if(d!=0)1 X& Z+ G5 O# {4 l8 G; O6 G
     return d;
7 b2 l1 s6 N  V$ _ }$ h/ P! K) [( r* O5 G
 return 0;* l9 k& o5 ^3 i; E- y
}/ ]1 a$ U  k( U/ v8 t

' q; s& y- G) S* |, T1 ~--- caller
. F3 m% Y+ x& l1 L: J7 y; S	nxta=vroot;  f! w# R% ?1 N6 q& S
	while(nxta)5 ?* n) b( \* x6 k
	{
% y4 h" N+ w4 V	 p=nxtleave(nxta);
+ J# v6 |* N& }2 Y$ w  G	 nxta=pop();' _7 k" E& _/ f8 E4 {
	}6 s3 U% R: A, Q* Y- Y! g
  r# H. C% E+ u. b
---

1088

主题

138

精华

3189

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3189
发表于 9-10-2018 08:38 AM | 显示全部楼层

PITM nextleave(PITM p)
" r/ M( ~( ~* h, G{. B+ @" k. ]5 b% T/ c% Q
	PITM d;
. I; i4 y( U3 K3 G$ ^8 V) h8 ?$ t. k5 q) i
	if(p->l)! Z0 _! b9 t$ O6 z2 G
	{5 |7 g) k( B% E" o0 w
		if(p->r) push(p->r);
/ y+ K' b8 z: w7 W# o5 g		return nextleave(p->l);
& ~$ X/ s( S1 a4 m  a: v; H	} 7 c# {- j! s' N. ^6 h) I$ F
	if (p->r)
. ~9 j; F. @( n' O2 Q, Q	{
  Z2 m: [0 ]" r/ r		return nextleave(p->r);
% i, d$ [9 ?) N9 w1 O6 E	}/ x5 k5 b8 k8 H# i
	return p;' j1 m% z; _! u# u& s& l  @, l. Z  l
}9 ?4 p$ x  t+ J$ o+ G5 M  |- g( Y
Caller...while(p)1 v0 U7 H4 L: i. P
	{) p5 P2 }" h9 j7 I) U1 F( s. l$ D6 t
		d=nextleave(p);
- J* s' ?9 |, {+ j* B, v$ ^- |		if(d) printf("%d ",d->val);: ]- l1 _7 \( [6 B4 K
		p=pop();
; t$ L/ X, y5 a- U, f	}

1183

主题

200

精华

3760

积分

神级会员

Rank: 7Rank: 7Rank: 7

积分
3760
发表于 9-10-2018 08:38 AM | 显示全部楼层

PITM nextleaf(PITM p)
2 P8 f4 z' ^& k1 F; A! R/ I{
$ o) E3 t  A. y8 v: {. v" h9 H* A% U if(p->l)
2 Y1 R) r3 T2 J% x {
8 Y2 x- f- D& s   if(p->r) push(p->r);: q2 @" e* X# X+ N
   return nextleaf(p->l);* [( ]( `, G) H; K+ h1 _
 }* A3 y: q) d7 Z
 if(p->r): F7 W; [& [* Z4 @
 {# a% r& t$ L0 L' B+ Z1 Y4 E( ?( k
   return nextleaf(p->r);
7 q) P6 C7 P9 X3 O% i }
# b1 m. j% h; j* F, Y5 y return p;: s% @# T( t1 K
}/ k/ N6 r6 X8 J
: O/ c1 k0 }) U5 }/ [4 [; K
Caller.... 
; v$ h- O1 j- W: [: xwhile(p)0 X* F  F$ D5 a: }6 T* v$ b6 g
	{' a. m& P% h& _7 `& @+ ]" j; A8 a
		d=nextleaf(p);
5 S, Q# e8 r/ V. C3 |+ ?		p=pop();
) c4 y6 r/ k4 e! F5 q	}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表